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

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

  • Пара арифметических связанных команд, Dash, POSIX shell, sh, Increment
  • Управление параллелизмом сценариев bash, наследование стада
  • Выполнить файл в своем родном каталоге с помощью сценария оболочки
  • Разрешение отклонено при получении файла md5sum с помощью сценария оболочки?
  • Ручная настройка переменных среды для Metasploit
  • Относительно отдельного файла в несколько файлов в соответствии с разделом строк
  • Zsh, нечувствительное между `_` и` -`
  • Как фильтровать массив строк в ksh
  • 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 - лучшая ОС в мире.