GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Löschen der Einträge, die gefiltert werden, während eine Ausgabe erstellt wird?

Ich habe ein Verzeichnis mit einer Reihe von Dateierweiterungen gemischt und ich möchte eine bestimmte Dateierweiterung auflisten (vielleicht so etwas wie grep *.mp3 ) und löschen Sie sie beim Auflisten mit einer Ausgabe. Wie kann ich das machen oder wenn es einen Betrüger gibt, können Sie mich gerne markieren.

Beispiel:

grep "*.mp3" . | rm -fr 

Akzeptierte Antwort:

Beginnen wir mit einem Verzeichnis mit drei mp3 Dateien:

$ ls *mp3
a.mp3  b.mp3  c.mp3

Lassen Sie uns sie jetzt löschen, nachdem wir aufgelistet haben, was wir löschen:

$ find . -maxdepth 1 -name '*.mp3' -printf 'Deleting %p\n' -delete
Deleting ./a.mp3
Deleting ./b.mp3
Deleting ./c.mp3

Danach wird die Datei mp3 Dateien sind weg:

$ ls *mp3
ls: cannot access '*mp3': No such file or directory

Wie es funktioniert

  • `finden .

    Dies startet eine find Befehl. Es sucht nach Dateien im aktuellen Verzeichnis . .

  • -maxdepth 1

    Standardmäßig find durchsucht rekursiv Unterverzeichnisse. Dies sagt ihm, das nicht zu tun. Mit -maxdepth 1 , der Befehl find wird nur nachsehen, was es im aktuellen Verzeichnis findet, und keines der Unterverzeichnisse des aktuellen Verzeichnisses durchsuchen.

  • -name '*.mp3'

    Dies weist find an, nur nach Dateien mit dem .mp3 zu suchen Erweiterung.

  • -printf 'Deleting %p\n'

    Dies weist find an, eine Nachricht über jede gefundene Datei auszugeben.

    Sie können dies natürlich in eine andere Nachricht ändern, wenn Sie möchten. Wenn Sie keine Nachricht wünschen, kann diese Option ganz weggelassen werden.

  • -delete

    Dies weist find an, jede Datei zu löschen.

Suche ohne Berücksichtigung der Groß-/Kleinschreibung

Wenn Sie auch Dateien namens .MP3 finden möchten oder .Mp3 usw., dann brauchen wir eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung und wir verwenden -iname :

find . -maxdepth 1 -iname '*.mp3' -printf 'Deleting %p\n' -delete

Ubuntu
  1. Suchen von Dateien in der Befehlszeile (How To)

  2. So finden Sie das Paket, das eine bestimmte Datei in Linux bereitstellt

  3. Finden Sie die MAC-Adresse in Ubuntu 21.10

  4. Ubuntu – So finden Sie die Xorg.conf. Wo ist es?

  5. Speichern Sie das Ergebnis von Find als Variable in einem Shell-Skript?

So finden Sie die MAC-Adresse in Ubuntu

So finden Sie Dateien in der Ubuntu-Befehlszeile

Skype findet den Audioeingang nicht?

Wie drucke ich eine mehrzeilige Ausgabe in derselben Zeile?

Wie finde ich alle Dateien, die sich auf eine Software beziehen?

Finden Sie die Befehlszeile?