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 anxargs
wird von komplexeren Befehlen pro Datei verwendet, als dies mit-exec
möglich ist . Die Option-print0
sagtfind
um Übereinstimmungen mit ASCII NULL anstelle eines Zeilenumbruchs zu trennen, und-0
sagtxargs
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