Beispiel ist falsch

Bearbeiten

Dieses Beispiel:

find . -mtime +$1 -type d -maxdepth 1 -exec echo erstelle {}.tar.bz2... \; -exec tar cjf {}.tar.bz2 {} \; -exec echo fertig \; -exec test -f {}.tar.bz2 \; -exec rm -r {} \;

ist falsch: die "find-Variable" "{}" für den gefundenen Dateinamen kann in einer -exec-Anweisung nur einmal verwendet werden, deshalb funktioniert das:

-exec tar cjf {}.tar.bz2 {} \;

wenn überhaupt, dann höchstens zufällig auf einigen ausgewählten Systemen. --bakunin (Diskussion) 19:28, 18. Aug. 2017 (CEST)Beantworten

Falle bei Benutzung des Parameters "-delete"

Bearbeiten

Vielleicht ist noch erwähnenswert, dass es im Zusammenhang mit find und dem Parameter -delete einen bösen "Anfängerfehler" gibt, den es gilt zu vermeiden.

Will man zum Beispiel alle Dateien mit dem Namen "Wikipedia" aus seinem Home-Verzeichnis löschen, sollte man NICHT schreiben:

find /home/<Benutzername> -delete -name Wikipedia

... denn dieser Befehl löscht sämtliche Dateien und Ordner in /home/<Benutzername> und ignoriert die Einschränkung "-name Wikipedia". Wenn muss das "-delete" nach hinten:

find /home/<Benutzername> -name Wikipedia -delete

Quelle: https://wiki.ubuntuusers.de/find/#Die-Aktion-delete-steht-an-der-falschen-Stelle --130.83.182.70 13:35, 6. Sep. 2018 (CEST)Beantworten