Как применять рекурсивные каталоги chmod без влияния на файлы?

После того, как я применил chmod -R к каталогу, разрешения изменяются для всего внутри (файлы и каталоги). Как я могу добавить разрешения на выполнение / поиск ( x ) в каталоги без изменения файлов?

  • Планирование команды / скрипта, указав точное второе
  • Как настроить отдельную среду bash с помощью только утилит GNU на OS X?
  • Cron Job: перенаправление вывода сценария оболочки в файл
  • Слияние нескольких файлов с максимальной разницей в 1 строку
  • Почему фоновые задания запускаются моей оболочкой, живущей дольше, чем исходная оболочка и управляющие терминалы?
  • Исходный файл .bashrc в bash глобально
  • Как пропустить файл в sed, если он содержит регулярное выражение?
  • Как рекурсивно исходные сценарии оболочки?
  • 2 Solutions collect form web for “Как применять рекурсивные каталоги chmod без влияния на файлы?”

    Вы можете использовать find .

     find ./ -type d -execdir chmod 750 {} + 

    Где 750 – это режим, который вы хотите применить, и «./» – это каталог, который вы будете рекурсивно искать.

    EDIT : Благодаря @Gilles и найти (1) , я пересмотрел это для дополнительной безопасности и производительности.

    В этом конкретном случае вы можете использовать X вместо x который добавляет только биты в каталоги или файлы, у которых уже установлен исполняемый бит для некоторого пользователя (например, chmod -R +X my_dir ).

    В общем случае (например, если вы хотите, чтобы все доступные для чтения каталоги не влияли на файлы), вы можете либо использовать find с -type d либо если вы используете zsh (или bash 4 с shopt -s globstar ) **/ glob ( оба без передачи флага -R в chmod ).

    Linux и Unix - лучшая ОС в мире.