Описание тега logger
Вот скрипт, вы можете позвонить по прохождении режима в качестве первого аргумента и одно или несколько имен каталогов, как и последующие аргументы. Под Linux, если вы не проходите какие-либо директории имя, это будет, как будто вы прошли .
(текущий каталог). Имя этого скрипта rchmodf
, сделайте его исполняемым (команда chmod а+ГХ /путь/к/rchmodf
) и поставить его где-нибудь на вашем пути$Path
.
#!/Бен/ш
режим=$1; сдвиг
найти "$@" -тип F -exec для чмод "$режим" {} +
Пояснения: режим=$1; сдвиг
устанавливает переменную режиме
первый аргумент скрипта и удаляет, что первый аргумент из списка. "$@"
расширяет список всех аргументов.
Если вы хотите, вы можете сделать скрипт, который принимает в режиме каталога и в режиме файл.
#!/Бен/ш
для dir_mode=$1; сдвиг
file_mode=$1; сдвиг
найти "$@" -тип D -Exec и чмод "$для dir_mode" {} + -о-тип F -Exec и чмод "$file_mode" {} +
Обратите внимание, что 744 не полезный режим файл; 644 (пользователей-для записи и чтения) и 755 (также Мир-исполняемый) встречаются гораздо чаще. Кроме того, изменение каждого файла в дереве, чтобы быть исполняемым или не быть исполняемый используется редко; вы, вероятно, хотите, чтобы вызвать этот скрипт с аргументами как +ГХ
(капитал х
, установить исполняемый бит только для папок и файлов, которые уже исполняемый). В самом деле, х
символьном режиме, вероятно, что вы были после того, как с этими скриптами: команду chmod -Р +ГХ .
.
С bash или zsh, есть другой способ действовать рекурсивно, но только по каталогам. Для bash, вам нужна версия 4 и запустить shopt -с globstar
первый.
команду chmod а+ГХ **/*/
В ЗШ, вы можете действовать на файлы только путем добавления в конец (.)
: команду chmod а+р **/*(.)
.
Я пройду на вопрос "Наутилус".