Вы можете использовать опцию
-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 {} \;✈️ Linux Ninja
