Löschen Sie alle Bilder in einem Ordner mit Ausnahme der Bilder, deren Titel im Titel definiert ist.

409
Carl Bembridge

Ich habe etwa 50.000 Bilder in einem Ordner (ich verwende Mac OSX), und ich möchte alle Bilder löschen, es sei denn, sie enthalten x300 oder 300x . Ich hatte gehofft, dass es möglich ist, das Terminal oder den Automator zu benutzen, aber ich habe keine Ahnung, wie es geht!

Vielen Dank!

0

1 Antwort auf die Frage

0
Sami Laine

Mit dem Terminal gibt es viele Möglichkeiten, dies zu tun. Eine Option ist die Verwendung von find (1):

find /your/dir -type f \! -name 'x300' \! -name '300x' -exec echo rm -f {} \; 

Ersetzen Sie /your/dirdurch den Ort, an dem Ihre Dateien liegen. Sobald Sie absolut sicher, dass die Fund Befehl Hits nur die Dateien, die Sie tatsächlich mit löschen möchten rm entfernen „Echo“ von der exec-Teil und wieder ausführen, um tatsächlich Dateien zu entfernen, anstatt den Druck heraus, welche Dateien entfernt werden würde.

Einige Erklärungen:
find / your / dir findet alle Dateien und Ordner in / your / diir ans.
-type filtert nur auf Dateien.
-name filtert nur auf Elemente x300, die x300 im Dateinamen enthalten.
Das ! macht das rückgängig (also nur Dateien, die NICHT enthalten).

-exec führt einen Befehl aus. Sie können Echo ausführen, oder Sie könnten -printsie.
Sie können rm als Befehl zum Löschen oder -deletezum Erstellen von Suchergebnissen verwenden.

{}ist der aktuelle Dateiname. Wenn Sie verwenden, \;wird {} jeweils durch einen Dateinamen ersetzt. (Wenn Sie also 10000 Dateien zum Entfernen haben, wird 10000 Mal ein neuer RM gestartet).

Sie können dies auch ersetzen, +um viele Dateien auf einmal zu erhalten (obwohl -elete noch effizienter ist).

Hallo! Vielen Dank für Ihre Antwort, ich habe versucht, sie zum Laufen zu bringen (und es für mich selbst herauszufinden!), Aber es verhält sich nicht so, wie ich denke, es sollte ... ich benutze den Befehl ** find / Benutzer / Carl / Desktop / LTW-Typ f \! -name 'x300' \! -name '300x' -exec echo rm -f {} \; ** Aber das gibt alle Dateien von dem zurück, was ich sehen kann, zum Beispiel hat das Terminal ein Echo erhalten ** rm -f / Benutzer / Carl / Desktop / LTW / zz-top-texicali-ep-review-300x225.jpg ** was es wegen der ** 300x225 ** ausschließen sollte, oder? Kannst du sehen, wo ich stumm bin? Danke im Voraus! Carl Bembridge vor 8 Jahren 0