myślę, że nie jest możliwe, aby osiągnąć to, co chcesz, tylko z find -exec
.
Najbliżej alternatywą byłoby zrobić rurę find
do xargs
, tak:
find some/path -print0 | xargs -0 program
lub
find some/path -print0 | xargs -0L1 program
To rzucić jeśli Program kończy działanie z kodem wyjścia niezerowej
- Użyto
print0
, aby pliki z znakami nowej linii Nazwy mogą być obsługiwane
-0
jest konieczne, gdy -print0
służy
L1
mówi xargs
program do wykonywania programu z jednym argumentem na raz (domyślnie jest dodanie wszystkie argumenty w jednym realizacji programu)
Jeśli masz tylko rozsądnych nazwy plików, można uprościć tak:
find some/path | xargs program
lub
find some/path | xargs -L1 program
Wreszcie, jeśli program przyjmuje więcej niż jeden argument, można użyć -i
w połączeniu z {}
. Na przykład.
find some/path | xargs -i program param1 param2 {} param4
Powiązane: http://unix.stackexchange.com/questions/62880/how-to-stop-the-find-command-after-first-match – kojiro