Мне нужно знать, как применить команду CHMOD только к файлам с определенным именем рекурсивно?
chmod 755 -R filename
Что-то вроде выше, но это должно относиться к любому filename
который существует в любых подпапках.
Это найдет все файлы с именем filename, рекурсивно из текущего каталога, и передаст их в chmod
.
find -name filename | xargs chmod 755
См. Руководства для find
и xargs
для более продвинутых опций. В частности, посмотрите на -print0
флаг и соответствующий -0
к xargs
если вы получаете ошибки о файлах с пробелами в имени.
В find также есть параметр exec, который будет делать то же самое:
find . -name filename -exec chmod 755 {} \;
Вы можете получить лучшее из обоих миров, если воспользуетесь +
оператор найти, чтобы запустить его chmod
сразу на многих файлах.
find . -name filename -exec chmod 755 '{}' +
Вы всегда должны ставить '
вокруг твоего {}
, иначе имя файла с пробелом может испортить ситуацию. В данном случае это не проблема, но у меня есть привычка это делать.