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

Я соглашаюсь с David Oneill, что необходимо просто пойти с чем-то.

Но хорошо, если файлы являются поддающимися сортировке в том же dir, не делайте номера 0.. 10, но номера 00.. 10.

При использовании дат на имена пойдите со стандартным форматом даты как ISO8601.

И не бойтесь использовать несколько символов для разделения логических частей на имя. Если Вы используете _ (который равнялся 3 _), то можно упростить regexps на именах файлов позже.

Таким образом, Ваш пример мог затем быть чем-то вроде этого:

backup_2011-06-19T114012___part002___random

Легкий читать и легкий проанализировать со сценариями.

19
01.06.2012, 06:41
2 ответа

Можно использовать, находят.

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

Где 750 режим, требуется подать заявку и ". /" каталог, который Вы будете рекурсивно искать.

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

13
27.01.2020, 19:45
  • 1
    @Gilles Благодарит, это является не слишком частым, что я узнаю что-то новое об инструментах Unix :-) Это является потрясающим. Кроме того, теперь читая документацию находки, нужно действительно использовать-execdir вместо этого. –  ewindisch 15.01.2011, 02:12

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

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

8
27.01.2020, 19:45
  • 1
    @Gilles: Положительная сторона, я добавил это к ответу. –  sepp2k 15.01.2011, 02:12
  • 2
    "использует X вместо x, который только добавляет биты к каталогам или файлам, которые уже имеют исполняемый набор битов для некоторого пользователя" - Спасибо! я пропустил эту вещь много! –  Ivan 15.01.2011, 06:51

Теги

Похожие вопросы