Debian – ein Befehl für Dateien Suchen und Löschen mit einem Rutsch

System: Debian Squeeze / Wheezy
Aufagbe 1: Dateien vom Typ .bak in allen Unterordnern zu suchen und in einem Rutsch, also mit einem Befehl  löschen.
Aufgabe 2: Das Verzeichnis “Sample” in allen Unterordner von Dir1 zu suchen und zu löschen.
Lösung für Dateien:
find * -type f -iname “DATEI” -exec rm -f {} \;
 
Lösung für Dateien mit .bak:
find * -type f -iname “*.bak” -exec rm -f {} \;
 
Löschen von Dateien mit Userbestätigung:
find * -type f -iname “*.bak” -exec rm -i {} \;
Lösung für das Verzeichnis:
find * -type d -iname ‘*VERZEICHNIS*’ -exec rm -Rfv {} \;
Lösung für Dateien und Verzeichnisse:
find * -iname “DATEI-UND-VERZEICHNIS” -exec rm -f {} \;

Erklärung

Sternchen (*) = alle Dateien und Verzeichnis in diesem und den Unterverzeichnissen
Punkt (.) = nur im aktuellen Verzeichnis
-type f und d = d= nur Dateien f= nur Verzeichnis
-name und -iname = Suchname wobei (i) für Groß- und Kleinschreibung steht
-exec = führt einen Befehl aus
rm -iRfv = löschen i=bei jeder Aktion nachfragen ob gelöscht werden soll, R= Rekrusiv, f=force, v=verbose
Backslash (\) = wird benötigt, damit das Ende (;) des Befehls erkannt wird, sonst wird (;) mit als Befehlzugehörig angesehen

weitere Infos unter

man find
man rm

! Achtung ein Backup ist nie verkehrt und du solltest wissen was du machst 😉

! statt -exec kann auch xargs verwendet werden, dass performanter sein soll, da es nur einen Prozess für jeden Aufruf ausführt und nicht wie -exec mehrere, zudem prüft es mit dem Parameter -0 ob ein Ergebnis zurück geliefert wird. Hierzu eventuell mal später mehr…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.