Как распечатать совпадение, а также запустить -exec

Я хотел запустить find а затем выполнить скрипт в каждом матче; однако я хотел напечатать имя сопоставленного файла над выводом каждого exec . Как я могу произвести следующий вывод:

 $ find . -name 'something' -exec sh script.sh {} \; ./something_1 output from script.sh something_1 ./something_2 output from script.sh something_2 

В настоящее время я получаю только результат от script.sh . Я попробовал -exec echo {} && sh script.sh {} \; без успеха.

Я бы предпочел решение с использованием -exec или xargs -print0 , то есть не подверженным проблемам с пробелом.

2 Solutions collect form web for “Как распечатать совпадение, а также запустить -exec”

find отпечатки всех соответствующих файлов по умолчанию, если вы не укажете никаких других действий.

Когда вы выполняете -exec ... , он заменяет -print .

Когда вы помещаете два действия рядом друг с другом, это означает AND .

Так что просто обоим:

 $ find . -name 'something' -print -exec sh script.sh {} \; 

Попробуйте сделать это:

 $ find . -name 'something' -exec sh script.sh {} \; | script.sh | script.sh 
  • Скопируйте файл и структуру файла и объедините в новый каталог
  • Как я могу заменить эту команду оболочки?
  • Как создать копию файла в нескольких каталогах?
  • Перемещение файлов старше одного года в родительский каталог архива
  • Найти файл с более длинным именем
  • Есть ли способ найти файл в обратном рекурсивном поиске?
  • Добавление содержимого содержимого в массив
  • Как использовать команду find для перечисления общедоступных записываемых файлов в каталог, не переходя в какие-либо подкаталоги?
  • Рекурсивно перечислить все каталоги, содержащие один или несколько файлов изображений jpg
  • Как найти файл с именем, которое зависит от текущей даты (и случайного компонента)?
  • `$ RANDOM` не является случайным в` `` `` `` `Exec``` `` `` `` `` `` `` `
  • Linux и Unix - лучшая ОС в мире.