Wie lösche ich viele 0-Byte-Dateien in Linux?
Ich habe ein Verzeichnis mit vielen Anzahl der 0-byte-Dateien. Ich kann auch nicht sehen, die Dateien, wenn ich den ls-Befehl. Ich bin mit einem kleinen Skript, um diese Dateien zu löschen, aber manchmal, dass nicht auch diese Dateien löschen. Hier ist das Skript:
i=100
while [ $i -le 999 ];do
rm -f file${i}*;
let i++;
done
Gibt es irgendeine andere Möglichkeit, dies zu tun mehr schnell?
InformationsquelleAutor der Frage small_ticket | 2010-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
find
kombiniert mitxargs
.Vermeiden Sie zu starten
rm
für jede Datei.InformationsquelleAutor der Antwort Didier Trosset
Mit GNU ' s
find
(siehe Kommentare), gibt es keine Notwendigkeit zu verwenden xargs :InformationsquelleAutor der Antwort coredump
Löschen Sie alle Dateien mit dem Namen Datei... in dem aktuellen Verzeichnis:
Das wird noch eine lange Zeit dauern, wie es beginnt
rm
für jede Datei.InformationsquelleAutor der Antwort Sjoerd
Können Sie folgenden Befehl verwenden:
Und wenn Sie suchen, um zu löschen Sie die 0-byte-Dateien in Unterverzeichnisse wie gut, weglassen
-maxdepth 1
im vorherigen Befehl und Ausführung.InformationsquelleAutor der Antwort jitendra
können Sie auch die option-delete-das löschen der Datei.
vom Mann finden,
-löschen
Löschen von Dateien; true, wenn das entfernen erfolgreich war.
InformationsquelleAutor der Antwort thegeek
Hier ist ein Beispiel, versuchen Sie sich selbst helfen dies Sinn zu machen:
Wenn Sie einen Blick auf die man-Seite zu finden (Typ
man find
), sehen Sie eine Reihe von leistungsstarken Optionen für diesen Befehl.InformationsquelleAutor der Antwort Noel M
Dieser findet die Dateien mit der Größe 0 in dem aktuellen Verzeichnis, ohne in die sub-Verzeichnisse und löscht Sie.
Liste der Dateien, ohne Sie zu entfernen:
InformationsquelleAutor der Antwort user7194913
"...manchmal, dass nicht auch diese Dateien löschen" macht mich denke, das könnte etwas sein, das Sie regelmäßig tun. Wenn ja, ist dieses Perl-Skript entfernt alle null-byte-files im aktuellen Verzeichnis. Es vermeidet rm zusammen durch ein system call (unlink), und ist Recht schnell.
InformationsquelleAutor der Antwort andereld
Gehen eine Ebene nach oben es lohnt sich herauszufinden, warum die Dateien sind da. Sie sind nur das symptom zu behandeln, indem Sie Sie löschen. Was ist, wenn irgendein Programm ist, verwenden Sie zum sperren von Ressourcen? Wenn also Ihr, Sie zu löschen, könnte sein, führt zu Korruption.
lsof ist ein Weg könnte man herausfinden, welche Prozesse ein handle auf die leeren Dateien.
InformationsquelleAutor der Antwort Paul Rubel