Вы можете использовать опцию
-exec команды find, чтобы вызвать внешнюю программу для выполнения определённого действия над найденными файлами, соответствующими заданным критериям. Например, удаление файлов, вывод прав доступа и т. д.$ find ~/ -type f -exec ls -lah {} \;Это особенно полезно, когда нужно выполнить одно и то же действие над несколькими файлами, расположенными в разных местах.
Приведённая команда выводит информацию о правах доступа и других метаданных для каждого найденного файла.
Разбор опции
-exec:🔹
exec ls — указывает find выполнить команду ls для каждого найденного файла.🔹
-lah — отображает все файлы (включая скрытые), их права доступа и другие метаданные (например, размер) в удобочитаемом формате.🔹
{} — это специальный placeholder, заменяемый именем каждого найденного файла. Он всегда должен быть последним в списке параметров.🔹
; — указывает конец списка параметров. Его необходимо экранировать (\;), иначе shell интерпретирует его неправильно.Также вместо
; можно использовать +, что позволяет передавать сразу несколько файлов в одну команду. Между + и {} должен быть пробел.Можно выполнять несколько команд с помощью
-exec. Например, следующая команда считает количество слов в текстовых файлах и их занимаемое место на диске:$ find . -name "*.txt" -exec wc {} \; -exec du -sh {} \;👉 DevOps Portal
