Montag, 15. Februar 2010

OS-X: Rekursives Löschen von Dateien

Zwischendurch stehe vor der Aufgabe alle Dateien mit einem bestimmten Muster rekursiv aus einer Verzeichnisstruktur zu löschen.
Ich mache das natürlich im Terminal ;-)

Hier der Befehl dazu:

find . -name 'MUSTER' -type f -delete

Bemerkung: Dieser Befehl ist mit grösser Vorsicht zu verwenden. Gelöscht ist gelöscht!

Am besten führt man den Befehl mal ohne «-delete» aus, damit man sieht was gelöscht würde. Wenn der Output zu umfangreich wird kann der Output auch in eine Datei umgelenkt werden. Das geht dann folgendermassen:

find . -name 'MUSTER' -type f > NAME_ZIEL_DATEI

Erklärung:
  • find . : suche ausgehend vom aktuellen Verzeichnis. Anstatt ein Punkt könnte da auch ein Pfad stehen
  • -name : es wird nach einem Dateinamen/Verzeichnisnamen gesucht. Hier sind auch andere Suchkriterien möglich. Z. Bsp. die Grösse von Dateien, das Änderungsdatum von Dateien,…)
  • 'MUSTER' : Hier kommt das Muster der gesuchten Dateien hin z. Bsp. '*.class'
  • -type f : steht dafür, dass wir nur Dateien und nicht Verzeichnisse suchen (f=File)
  • -delete : lösche das gefundene
Für weitere Optionen des Find-Befehls kann man das Manual konsultieren:

man find

im Terminal eingeben. Will man das Manual wieder verlassen, kann man das durch drücken der Q-Taste tun, vorwärts geht es mit der F-Taste, zurück mit der B-Taste.

Viel Spass beim Finden

Ihr Daniel Sterchi

0 Kommentare:

Kommentar veröffentlichen