Как выполнить файлы, которые найдены найти

У меня есть несколько исполняемых файлов в дереве каталогов. Я хочу найти их и выполнить их самым простым способом. Я пробовал это до сих пор:find . -perm 0775 -type f | xargs execНо exec - это не исполняемый файл, это внутренний bash. Я мог бы создать скрипт-обертку, который мог бы выглядеть так:

#!/bin/bash
# exec.sh
exec $1

И тогда мог бежать find . -perm 0775 -type f -exec ./exec.sh {} \;Но должен быть более элегантный и короткий способ сделать это.

2 ответа

Решение

Просто бросьте сценарий.

find . -perm 0775 -type f -exec '{}' ';'

работает просто отлично!

xargs на самом деле не подходит для этого; в основном он предназначен для предоставления фиксированной команды с аргументами, считанными из стандартного ввода.

Но вы можете вызывать программы напрямую, используя простой цикл оболочки:

find . -perm 0775 -type f | while read program; do
                                $program
                            done
Другие вопросы по тегам