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