У меня есть необходимость сделать некоторые папки/файлы (рекурсивные) иметь те же права, что и у пользователя. Итак:chmod - реплицировать разрешения пользователя на группу/мир
- 0755 -> 0777
- 0644 -> 0666
Как я могу это сделать? Возможно, небольшая секретная команда, о которой я знаю?
Если нет простого способа, то, возможно, мне понадобится создать цикл и test/assign. В конечном итоге мне нужно иметь дело только с 3-х типов:
Папки должны быть 777, большинство файлов 666, исполняемые 777.
Это очень, очень багги. Посмотрите, что происходит с именами файлов с пробелами или подстановочными знаками. Кроме того, запустите его через http://shellcheck.net/ и исправьте проблемы с котировками. –
... и что касается общей практики 'для файла в $ (find. -print)', см. [BashPitfalls # 1] (http://mywiki.wooledge.org/BashPitfalls#for_i_in_.24.28ls_.2A. mp3.29) и [DontReadLinesWithFor] (http://mywiki.wooledge.org/DontReadLinesWithFor). –
... если вы хотите иметь возможность безопасно и правильно обрабатывать произвольные имена файлов из 'find' в ваших сценариях оболочки, вам нужно либо использовать действие' -exec', чтобы передать их в ваш скрипт на argv, либо '-print0 'для генерации потока, ограниченного NUL. Найдите '-print0' в [BashFAQ # 1] (http://mywiki.wooledge.org/BashFAQ/001) для примера последнего или раздел« Комплексные действия »в [UsingFind] (http: // mywiki.wooledge.org/UsingFind) для обсуждения обоих. –