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

13

Попытка выполнить рекурсивный chmod для всех файлов .sh в каталоге, чтобы сделать их исполняемыми

Arunava
источник
Посмотри findи возможно xargs.
Фракием

Ответы:

25

Чтобы сделать это возможным, вы можете использовать findкоманду и искать все файлы с .shрасширением, а затем выполнить chmodкоманду для каждого найденного файла :

find /directory/of/interest/ -type f -iname "*.sh" -exec chmod +x {} \;

Информация:

  1. -type fТолько для обычных файлов (пропустите каталоги, символические ссылки, именованные каналы и сокеты, а также специальные файлы, найденные в / dev)
  2. -iname: Игнорировать регистр в имени
  3. "*.sh": Globbing, говорящий findкоманде о поиске файлов с расширением ".sh"
  4. -exec chmod +x {}: Указывает findкоманде выполнить chmodкоманду для каждого найденного файла. Создание каждого исполняемого файла
  5. \;: Указывает на конец команды
Джордж Удосен
источник