Co jest +
w find /path/ -exec command '{}' +
zrobienia? w przeciwieństwie dofind /path/ -exec command '{}' \;
Co jest +
w find /path/ -exec command '{}' +
zrobienia? w przeciwieństwie dofind /path/ -exec command '{}' \;
Odpowiedzi:
„+” Tworzy jeden duży wiersz poleceń ze wszystkich znalezionych plików, aby zminimalizować liczbę poleceń do uruchomienia.
Biorąc pod uwagę przypadek, że polecenie find znajdzie cztery pliki.
find . -type f -exec command '{}' \;
produkuje
command file1
command file2
command file3
command file4
Z drugiej strony
find . -type f -exec command '{}' \+
produkuje
command file1 file2 file3 file4
Ze strony podręcznika:
-exec polecenie {} +
Ten wariant akcji -exec uruchamia określone polecenie na wybranych plikach, ale linia poleceń jest budowana przez dołączenie każdej wybranej nazwy pliku na końcu; całkowita liczba wywołań polecenia będzie znacznie mniejsza niż liczba dopasowanych plików. Wiersz poleceń jest budowany w taki sam sposób, jak xargs buduje wiersze poleceń. W poleceniu dozwolona jest tylko jedna instancja „{}”. Polecenie jest wykonywane w katalogu startowym.
find
daje mi pół.
xargs
,-exec … {} +
robi to samo-print | xargs …
, ale bez problemów z cytowaniem (-print0 | xargs -0
jest inny sposób, ale jest mniej przenośny).