Geschwindigkeitsunterschied wird unbedeutend sein.
Aber Sie müssen sicherstellen, dass:
Ihr Skript wird nicht davon ausgehen, dass keine Dateibereich haben wird, Tab, etc in Dateinamen; die erste Version ist sicher, die zweite ist nicht.
Ihr Skript behandelt keine Datei, die mit "-
" als Option beginnt.
So sollte der Code wie folgt aussehen:
find . -exec cmd -option1 -option2 -- {} +
oder
find . -print0 | xargs -0 cmd -option1 -option2 --
Die erste Version ist kürzer und einfacher zu schreiben, wie Sie 1 ignorieren können, aber die zweite Version ist portabler und sicherer, da "-exec cmd {} +
" eine relativ neue Option in GNU findutils ist (seit 2005, viele laufende Systeme werden es noch nicht haben) und es war buggy recently. Auch viele Leute kennen das nicht "-exec cmd {} +
", wie Sie aus anderen Antworten sehen können.
Verwandte: https://stackoverflow.com/questions/9612090/how-to-loop-through-file-names-returned-by-find –