slu hat geschrieben:...bis rm komme ich noch mit das "{} \;" ist mir nicht klar.
über die "-exec" Option kannst du ein beliebiges Kommando angeben, welches dann für jede gefundene Datei aufgerufen wird.
dein Kommando kann beliebig lang sein, "find" möchte aber, daß das Ende des Kommndos mit " \;" markiert wird.
"{}" ist der Platzhalter, dort wird von "find" die gefundene Datei eingesetzt.
slu hat geschrieben:
Leider hab ich hier bei der Ausgabe sofern Dateine gefunden werden auch leerstellen drin, macht das nichts? z.B. ./Erster Ordner/test.BAK
das ist mit beiden Methoden kein Problem,
wenn du die xargs Methode in Shellscripten verwendest, solltest du noch die Option "-r" angeben. Dann wird, wenn "find" keine Datei findet, auch das "rm" Kommando nicht aufgerufen. Es kommt daher nicht zu so einer unschönen Fehlermeldung:
Code: Alles auswählen
gms1 tmp # find -name "gibtsnicht" -print0 | xargs -0 rm
rm: fehlender Operand
„rm --help“ gibt weitere Informationen.
Bei xargs wird das spezifizierte Kommando nur einmal für alle Dateien aufgerufen, dieses Verhalten kann jedoch über zusätzliche Optionen gesteuert werden Bei "find" mit "-exec" wird das spezifizierte Kommando immer für jede Datei extra aufgerufen.
Gruß
gms