Was ist der einfachste/beste Weg, um leere (Null-Byte-) Dateien mit nur nativen Mac OS X-Tools zu finden und zu entfernen?Löschen von leeren (Null-Byte-) Dateien
Antwort
Einfach genug:
find . -type f -size 0 -exec rm -f '{}' +
Um eine Datei mit xattr Inhalt zu ignorieren (die MacOS find
Implementierung vorausgesetzt):
find . -type f -size 0 '!' -xattr -exec rm -f '{}' +
das gesagt ist, beachten Sie, dass viele xattrs sind nicht besonders nützlich (Zum Beispiel existiert com.apple.quarantine
für alle heruntergeladenen Dateien).
find /path/to/stuff -empty
Wenn das die Liste der Dateien ist Sie suchen dann den Befehl machen:
find /path/to/stuff -empty -exec rm {} \;
Vorsicht! Es wird keinen Weg geben, dies rückgängig zu machen!
Besser zu verwenden + als; Wenn Sie einen aktuellen Fund haben - so verhält es sich, wenn es in der Pipeline wäre. –
Verwendung:
find . -type f -size 0b -exec rm {} ';'
mit allen anderen möglichen Variationen zu begrenzen, was gelöscht wird.
Sie können die potenziell große Anzahl von Gabeln senken laufen/bin/rm durch: Versionen
find . -type f -size 0 -print0 | xargs -0 /bin/rm -f
Der obige Befehl ist sehr portabel und läuft auf den meisten Versionen von Unix und nicht nur Linux-Boxen, und auf von Unix seit Jahrzehnten zurück. Für lange Dateilisten können mehrere /bin/rm
Befehle ausgeführt werden, um zu verhindern, dass die Liste die Befehlszeilenlänge überschreitet.
Ein ähnlicher Effekt kann mit weniger tippen auf neueres OSes erreicht werden, ein +
in find
mit der häufigste Verwendung von xargs
in einem Stil, noch mich neben /bin/rm
zu anderen Aktionen verleiht zu ersetzen. In diesem Fall behandelt find
die Aufteilung wirklich langer Dateilisten in separate /bin/rm
-Befehle. Die {}
wird üblicherweise zitiert, um die Shell daran zu hindern, irgendetwas zu tun; die Zitate sind nicht immer erforderlich, aber die Feinheit der Schale zu zitieren sind zu kompliziert hier zu bedecken, so dass, wenn Sie Zweifel haben, die Apostrophe enthalten:
find . -type f -size 0 -exec /bin/rm -f '{}' +
In Linux, briefer Ansätze sind in der Regel mit -delete
. Beachten Sie, dass die letzte find
-delete
primäre direkt mit unlink
(2) implementiert ist und nicht eine Zillion /bin/rm
Befehle oder sogar die wenigen, die xargs
und +
tun. Mac OS find
hat auch die -delete
und -empty
Vorwahlen.
find . -type f -empty -delete
stampfen leer (und neu geleert) Dateien - Verzeichnisse als auch - viele modernen Linux-Hosts diesen effizienten Ansatz verwenden:
find . -empty -delete
+1 Dies ist die bessere Antwort. –
Dieses _does_ verbessert die Portabilität, gewährt - aber 'find -exec ... {} +' ist über Linux hinaus verfügbar. Sofort unterstützen sowohl Solaris 11 als auch OS X diese jüngste Ergänzung der POSIX-Spezifikation für find (hinzugefügt in Ausgabe 6 von 1003.1). –
Die '+' Syntax ist weniger portabel, aber immer noch ziemlich portabel. Es ist definitiv nicht auf einer Reihe von * alten * Unixen verfügbar, die 'xargs' haben. 'xargs' ist auch viel flexibler als das' +', obwohl die Frequenz, die diesen zusätzlichen Flex benötigt, wirklich niedrig ist. Ich füge jedoch die '+' Form hinzu. –
- 1. löschen/leeren gridLayout von Panel
- 2. Löschen von leeren Zellen-Arrays
- 3. Löschen von nicht leeren Verzeichnissen in Java
- 4. Mysterious "Embedded Nullbyte" -Fehler
- 5. Löschen von leeren Tabelle unter Forver
- 6. Löschen von leeren Zeilen aus einer Datei
- 7. Löschen von nicht leeren Ordnern und bestimmten Dateitypen
- 8. Löschen von Dateien/Uploads beim Löschen Benutzer
- 9. Lesen Sie alle Zeichen einschließlich Nullbyte
- 10. Löschen von Dateien im Baum
- 11. Löschen von Dateien in git
- 12. Memcache wird Speicher nicht leeren oder löschen
- 13. eine Zeichenfolge in C++ mit einem Nullbyte
- 14. wchar endet mit einzelnen Nullbyte oder zwei von ihnen?
- 15. Löschen von Dateien von FTP in C#
- 16. Löschen von Dateien von git mit gitpython
- 17. wix - wie man nicht leeren Ordner löschen
- 18. Löschen von Zeilen bis zur ersten leeren Zeile
- 19. Löschen von leeren Seiten in Word Doc mit VBA
- 20. Wie programmatisch wirklich sauber löschen Dateien löschen?
- 21. Python: Löschen von Dateien eines bestimmten Alters
- 22. Automatisches Löschen von Dateien in Google Drive
- 23. Löschen von Dateien erstellt mit FileOutputStream
- 24. Löschen von Dateien älter als xx Tage
- 25. Passwortbestätigung zum Verschieben und Löschen von Dateien?
- 26. Python Vergleich und Löschen von Dateien
- 27. Löschen von * .kml-Dateien in temporären Internetdateien
- 28. mysql zurückgeben leer beim Löschen von Dateien
- 29. Schnellste Möglichkeit, Millionen von Dateien zu löschen
- 30. Samba, CIFS und Löschen von Dateien
bitte klären! eine Datei, die leer ist, alle leeren Dateien? Was hast du probiert, wo die Fehler? – hop
Ein Kommentar zu meiner Antwort klärte die Frage; angemessen aktualisieren. –
Danke Charles Duffy. Sorry für mein schlechtes Englisch: p – Bank