Wie lösche ich alle Dateien mit einer bestimmten Erweiterung aus einem Ordner und allen seinen Unterordnern? [Duplikat]

13

Ich möchte alle .jpg-Dateien aus meinem Musikordner entfernen, um Platz zu sparen. Mein Musikordner enthält Unterordner, und ich würde gerne wissen, ob es einen Befehl gibt, alle JPG-Dateien aus allen diesen Ordnern zu entfernen, unabhängig von ihrer Ebene. Danke für Ihre Hilfe!

    
Tigull 16.02.2012, 19:14
quelle

4 Antworten

8

Der einfachste Weg (wenn Sie Ubuntu Desktop verwenden):

Wechseln Sie zu Ihrem Musikordner in Nautilus, drücken Sie Strg + F und suchen Sie nach .jpg .

&Ampere; dann löschen Sie es

Sie können auch den Standort ändern und Ihre Suche genauer festlegen.

Aktualisiert

Nach der Suche präziser werden .jpg Klicken Sie auf die grüne Schaltfläche Select File type Picture & amp; dann entfernen Sie jpg nur von der Suche . dot & amp; dann reload wie in Bild unten gezeigt

  

Was es tut, durchsucht die Bilddatei wie .jpg .png .gif & amp; alle anderen Dateien, die sich in Picture Format

befinden

    
One Zero 16.02.2012, 19:33
quelle
55

Eine schnelle und saubere Lösung für die Befehlszeile wäre

cd <dir>
find . -type f -iname \*.jpg -delete
  • . sagt, dass die Suche im aktuellen Ordner beginnen soll.
  • -type f sagt find nur, um nach Dateien zu suchen.
  • -iname macht die Suche unabhängig von der Suche.
  • -delete weist find an, alle gefundenen Dateien zu löschen oder zu löschen.

Ich empfehle, den Befehl zuerst ohne -delete auszuführen, um eine Liste der Dateien zu erhalten, die entfernt werden, wenn -delete im Befehl enthalten ist. Auf diese Weise löscht ein kleiner Tippfehler nichts, was Sie nicht beabsichtigen.

Weitere Informationen zur Verwendung von find und seinen Möglichkeiten finden Sie unter man find

Beachten Sie, dass find keine Ausgabe erzeugt, wenn -delete verwendet wird.

Zum Kommentar zu mehreren Erweiterungen

find . -type f \( -name \*jpg -o -name \*png \) -delete

  • ( .. ) Gruppenausdruck. Muss aus der Shell entkommen, daher \( .. \) im Beispiel
  • -o logisch oder

Das obige Beispiel stimmt also mit jeder Datei überein, die am Ende ihres Namens entweder jpg oder png hat. Weitere Erweiterungen können auf dieselbe Weise hinzugefügt werden. Stellen Sie sicher, dass Sie sich -o zwischen jeder -name -Anweisung merken. Wenn -o nicht angegeben wird, wird find standardmäßig auf -a (und) gesetzt, was nicht funktioniert, da eine Datei nicht in beiden% co_de enden kann % und jpg gleichzeitig.

    
Zoke 16.02.2012 20:11
quelle
5

Das sollte es tun

sudo rm -rf -d ~/Music/*.JPG

, um alle .JPG-Dateien im Musikordner zu entfernen.

    
Ringtail 16.02.2012 19:31
quelle
0

Bashs shopt -s globstar kann hier für rekursives Globbing nützlich sein:

bash-4.3$ tree
.
├── 10.jpg
└── subfolder
    ├── 5.jpg
    └── another_subfolder
        └── 15.jpg

2 directories, 3 files
bash-4.3$ shopt -s globstar
bash-4.3$ rm ./**/*.jpg
bash-4.3$ tree
.
└── subfolder
    └── another_subfolder
    
Sergiy Kolodyazhnyy 13.07.2017 07:26
quelle

Tags und Links