Мне нужно убрать исполняемый флаг из всех файлов в определенном каталоге и подкаталогах. Прямо сейчас я делаю это с двухэтапным процессом
find /dir/ -type f -exec chmod ugo-x {} \;
find /dir/ -type d -exec chmod ugo+rx {} \;
Можно ли изменить первую строку, чтобы я мог удалить флаг exec из всех файлов, не входящих в каталог? Поскольку это необходимо делать на регулярной основе во многих каталогах и файлах, я бы предпочел не использовать bash-скрипт, который замедлял бы его.
linux
find
command-line
flag
wting
источник
источник
-type f
Предикат уже выбирает все файлы (или , что эквивалентно, все файлы без каталогов, так как ничего , что файл не может быть каталогом).-type f
предикатуfind
. Для меня формулировка этого вопроса настоятельно подсказала последнее значение.Ответы:
источник
!
в расширении истории, поэтому цитирование в CLI - хорошая идея. Вы вероятно не будете нуждаться в этом в подлиннике все же.