alle Verzeichnisse/Dateien namens .bla unterhalb eines Verzeichnisses löschen

Prof Farnsworth

Mitglied
Thread Starter
Dabei seit
08.01.2007
Beiträge
68
Reaktionspunkte
2
Hallo,

wie setze ich die im Topic genannte Aufgabe am besten um? Ich befinde mich in einem bestimmten Verzeichnis und möchte alle Verzeichnisse/Dateien unterhalb löschen, die .bla heißen.

MFG
 
Hallo Prof,

auf dem Finder: Apfel+F drücken, den reiter ANDERE betätigen und den Ordner Deiner Wahl in das geöffnete Fenster ziehen. Jetzt den Suchbegriff eingeben und die Treffer abwarten. Diese markieren und mit Apfel+Rückschritt in den Papierkorb befördern …
 
Wenn er den Ordner vorher markiert, ist es einfacher;)
 
Klingt schonmal sehr ordentlich :) Nur leider findet der Finder keine einzige der .bla-Verzeichnisse (weil versteckt). Wie umschiffe ich das?

MFG
 
Jetzt habe ich bereits ein
Code:
defaults write com.apple.finder AppleShowAllFiles 1
ausgeführt. Ich sehe jetzt auch die versteckten Verzeichnisse, allerdings tauchen sie nicht in der Suche auf :(

MFG
 
Das ist mit dem Terminal machbar:
Code:
find /pfad/zum/startverzeichnis -name .bla -delete
Um sicher zu gehen, nicht aus Versehen etwas unerwünschterweise zu löschen, kann man auch zunächst das '-delete' weglassen.
Dann erhält man eine Liste aller gefundener Dateien. Leerzeichen etc. im Pfad müssen gequotet werden.
 
Klingt schonmal sehr ordentlich :) Nur leider findet der Finder keine einzige der .bla-Verzeichnisse (weil versteckt). Wie umschiffe ich das?

MFG

Leider bietet der Finder beim suchen keine versteckten Dateien an.
Aber im Terminal gehts, wie hat maceis schon gesagt.
 
Soo, mit find klappt das auffinden schonmal, nur das -delete bleibt vollkommen ohne Effekt (möglicherweise weil es sich um Verzeichnisse mit Inhalt handelt?)..

Spontan kommt mir da die Idee einer Pipe, aber wie löse ich das?
 
man find sagt dazu, dass find auch Befehle ausführen kann
Code:
find /pfad/zum/startverzeichnis -name .bla -exec rm -Rf {} \;
 
Vor rm -rf habe ich sehr großen Respekt ;)

Okay, zum Verständnis bevor ich mir alles zerschieße:
die geschweiften Klammern sorgen dafür, dass der Befehl aus -exec für jedes Ergebnis von find angewendet wird, richtig? Den Semikolon kann ich wohl in einer einfachen Eingabe im Terminal außen vor lassen.
Bleibt noch die Frage nach der Bedeutung des Backslashes->?

MFG
 
Hallo Prof,

nei nicht ganz.

Das mit den Klammern hast du schon richtig erkannt aber.

Das Semikolon ist Bestandteil der Syntax wie find Befehle übergeben werden.
Der Backslash maskiert dieses allerdings damit die Shell das nicht als Trennung vor dem nächsten Befehl erkennt.

Gruß Worf
 
Das Semikolon ist der Abschluss des Befehls. Der ist wichtig. Der Backslash ist in der Shell wichtig, weil die sonst denkt, dass das Semikolon für sie ist. Es ist aber nicht für die Shell sondern für find. Ausprobieren kann man so etwas natürlich immer im Trockendock
Code:
find /pfad/zum/startverzeichnis -name .bla -exec echo {} \;
 
Leute, warum so umständlich?
'-exec echo {} \;' ist völlig überflüssig, da find standardmäßig sowieso die gefundenen Dateien ausgibt.
Code:
find /pfad/zum/startverzeichnis -name .bla
liefert das selbe Ergebnis wie die von Pingu ganannte Zeile.
 
Bei dem -exec echo... ging es nur darum, das ganze mal zu testen und nicht gleich rm -rf auszuführen. :)
 
Zurück
Oben Unten