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

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

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

2 ответа2

3

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

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

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

0

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

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

find . -perm 0775 -type f | while read program; do
                                $program
                            done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .