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

Löschen Sie übereinstimmende Dateien in allen Unterverzeichnissen

Entfernen Sie alle *.swp-Dateien unterhalb des aktuellen Verzeichnisses, verwenden Sie den find Befehl in einer der folgenden Formen:

  • find . -name \*.swp -type f -delete

    Die -delete Option bedeutet, dass find die übereinstimmenden Dateien direkt löscht. Dies ist die beste Übereinstimmung mit der eigentlichen Frage von OP.

    Mit -type f bedeutet, dass find nur Dateien verarbeitet.

  • find . -name \*.swp -type f -exec rm -f {} \;
    find . -name \*.swp -type f -exec rm -f {} +

    Option -exec ermöglicht find, einen beliebigen Befehl pro Datei auszuführen. Die erste Variante führt den Befehl einmal pro Datei aus, und die zweite führt so wenige Befehle wie möglich aus, indem {} ersetzt wird mit so vielen Parametern wie möglich.

  • find . -name \*.swp -type f -print0 | xargs -0 rm -f

    Weiterleiten der Ausgabe an xargs wird von komplexeren Befehlen pro Datei verwendet, als dies mit -exec möglich ist . Die Option -print0 sagt find um Übereinstimmungen mit ASCII NULL anstelle eines Zeilenumbruchs zu trennen, und -0 sagt xargs eine durch NULL getrennte Eingabe zu erwarten. Dies macht das Pipe-Konstrukt sicher für Dateinamen, die Leerzeichen enthalten.

Siehe man find für weitere Details und Beispiele.


find . -name '*.swp' -delete

Nachdem find den Löschvorgang selbst durchgeführt hat, wird jedes Risiko für im Dateinamen eingebettete Leerzeichen beseitigt, ... Für zusätzliche Sicherheit sollten Sie auch -type f hinzufügen nur für Dateien.


find /path -type f -name "*.swp" -delete
find /path -type f -name "*.swp" -exec rm -f "{}" +;

bash 4.0

shopt -s globstar
rm -f /path/**/*.swp

Linux
  1. Verwenden Sie Suchen, um ein bestimmtes Verzeichnis zu finden und alle darin enthaltenen Dateien außer einem Verzeichnis zu löschen?

  2. Alle Dateien finden, deren Name eine Zeichenfolge enthält

  3. Bash-Skript zum Löschen von Dateien, die älter als x Tage sind, mit Unterverzeichnissen

  4. Löschen Sie alle bis auf 1000 zufällige Dateien in einem Verzeichnis

  5. Schnellere Möglichkeit, eine große Anzahl von Dateien zu löschen

Wie finde ich alle fest verlinkten Dateien in einem Dateisystem?

gzip alle Dateien ohne sie zu löschen

Finden Sie alle doppelten Dateien nach MD5-Hash

Wie lösche ich alle Dateien in einem Verzeichnis außer einigen?

Wie kann ich alle leeren Dateien und Verzeichnisse in Linux rekursiv löschen?

Wie verwende ich den Befehl find, um Dateien zu löschen, die einem Muster entsprechen?