Как мне найти все файлы в каталоге и подкаталогах и запустить команду для них?
Например,
find . -type f -name "*.txt"
находит все текстовые файлы и:
find . -type f -name "*.txt" | gedit
отправляет его в gedit, но внутри текстового файла. Я хочу, чтобы gedit открыл все текстовые файлы.
{}
Стоит имя текущего файла, а точка с запятой просто завершения команды. Обратная косая черта и окружающие кавычки предназначены только для предотвращения расширения оболочки.find . -type f -name "*.txt" -print0 | xargs -0 gedit
источник
man find
илиman xargs
, затем,/
чтобы найти данный флаг. Документация довольно хорошая, она должна отвечать на ваши вопросы.-print0
печатает символ NULL после каждой записи,-0
ожидает , что записи разделяются символом NULL. Это самый безопасный способ обработки хитрых имен.