Ich wollte Dateien löschen, die größer als 2 MB in einem bestimmten Ordner waren. Also rannte ich:
find . -size +2M
Und ich habe eine Liste von zwei Dateien
./a/b/c/file1
./a/f/g/file2
Also renne ich dann:
find . -size +2M -exec rm ;
und ich bekomme die Fehlermeldung Find: missing argument to -exec
Ich überprüfe die Syntax in der Manpage und es heißt -exec command ;
Also versuche ich es stattdessen
find . -size +2M -exec rm {} +
Und es funktioniert. Ich verstehe, dass die {} es den Befehl wie rm file1 file2
statt ausführen lassen rm file1; rm file2;
.
Warum hat der erste nicht funktioniert?
ANTWORTEN:
Ich musste wohl nur ein paar Mal RTFM, um endlich zu verstehen, was es sagte. Obwohl im ersten Beispiel {} nicht angezeigt wird, sind die geschweiften Klammern in allen Fällen erforderlich. Und dann entweder \ hinzufügen; oder + je nach gewünschter Methode. Lesen Sie nicht nur die Überschrift. Lesen Sie auch die Beschreibung. Verstanden.