Batch suchen & entfernen von Dateien unter linux mit dem Befehl "suchen" problem
Hallo alle zusammen
Ich bin versucht zu entfernen alle Daumen.db-Dateien in eine Windows-partition mit finden Befehl in ubuntu:
find . -iname "*.db"|while read junk;do rm -rfv $junk;done
Aber es ist nicht für mich arbeiten, und nix passiert!!!
Ich habe diesen trick zu entfernen, meine junk-Dateien, bevor Sie auf die Vorherige version von Ubuntu, aber jetzt auf die neueste version von Ubuntu kann ich nicht.
Gibt es irgendwelche Fehler in meinem Befehl?
- tut
find . -iname "*.db"
etwas zurückzugeben? - Diese Frage gehört wirklich auf superuser.com
- ja es gibt den Pfad der gefundenen Daumen.db-Dateien. Aber ich glaube ich habe das problem, das die Leerzeichen im Verzeichnisnamen!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde es so machen:
Diese Weise, es funktioniert immer noch, auch wenn Ihre Verzeichnisse enthalten Leerzeichen im Namen.
nur zu werfen, diese gibt
Ich bin mir nicht sicher, warum Sie mit
while
....sollte ausreichen (und nur die Dateien löschen, die Sie wollen, nicht alle BDB-Dateien, die möglicherweise rumfliegen).
Der code sieht gut aus und funktioniert auf arch und debian. Vielleicht gibt es keine passende Dateien "*.db"?
Nebenbei: ich könnte nicht eine gute Idee, um löschen Sie alle Dateien mit der Endung ".db", denn Sie können versehentlich löschen von anderen Dateien als "Daumen.db"
Prüfen Sie zuerst, ob der erste Teil des Befehls, das heißt:
wieder nichts.
Wenn es dann funktioniert, können Sie
xargs
wie folgt zu erreichen Ihre Aufgabe:UPDATE: Aus den Kommentaren, das ist unsicher, speziell wenn es Leerzeichen in Verzeichnis - /Dateinamen. Benötigen Sie
-print0
/xargs -0
sicher.-print0
/xargs -0
Kombination, um es sicher (oder verwenden Sie den-exec
Methode)mkdir -p "a/b c" ; touch b ; touch c ; find . -iname 'b*' | xargs -n 1 echo
. Sehen Siec
ausgedruckt in einer eigenen Zeile. Wenn Sie ersetzenecho
mit einemrm
Variante, entfernt es die Datei namensc
wenn Sie gefragt, für-iname 'b*'
.