Ich führe diesen Befehl auf einer Unix-Box aus:
find . name CVS -exec rm -fr {} \;
Ich wollte alle aufgerufenen Dateien CVS
in allen Verzeichnissen des aktuellen Verzeichnisses löschen und es wurde alles gelöscht.
Zum Glück musste ich zur Wiederherstellung nur noch einmal aus CVS auschecken. Stellen Sie sich vor, ich hätte /
das Startverzeichnis angegeben!
Ich denke, der Grund ist, dass ich name
anstelle von verwendet habe -name
. Ich habe es einfach erneut ausgeführt als
find . -name CVS -exec rm -fr {} \;
Und es scheint gut zu funktionieren. Was genau passiert, wenn name
anstelle von verwendet wird -name
?
Antwort1
Sie vermissen den Bindestrich vor -name
, daher wurde gesucht nachPfadebenannt .
, name
und CVS
, wobei der Punkt auf den aktuellen Ordner verweist und somit alles löscht.
Das Suchdienstprogramm durchsucht den Verzeichnisbaum rekursiv für jeden aufgelisteten Pfad.
Sie können den Test ganz einfach durchführen, indem Sie echo
vor dem auszuführenden Befehl Folgendes eingeben:
finde . Name CVS -exec echo rm -fr {} \;