Frage: Wie finde ich leere Verzeichnisse, die keine Dateien enthalten? Außerdem, wie finde ich alle leeren Dateien (Null-Byte-Dateien) in Linux?
Antwort: Sie können den Unix-Befehl find verwenden, um eine Liste aller leeren Dateien und Verzeichnisse zu erhalten wie unten erklärt.
Siehe auch unsere früheren Artikel über Unix-Beispiele für Find-Befehle – Teil 1 und Beispiele für Find-Befehle – Teil 2.
Finde leere Verzeichnisse im aktuellen Verzeichnis mit find -empty
find . -type d -empty
Verwenden Sie den folgenden Befehl, um alle leeren Verzeichnisse unter dem aktuellen Verzeichnis zu entfernen.
find . -type d -empty -exec rmdir {} \;
Hinweis: Es wird nicht empfohlen, leere Verzeichnisse aus /etc/ oder anderen Systemverzeichnissen zu entfernen.
Finde leere Dateien im aktuellen Verzeichnis mit find -empty
find . -type f -empty
Hinweis:Typischerweise werden leere Dateien von einigen Programmen als Platzhalter oder als Lock-Dateien oder als Socket-Dateien für die Kommunikation erstellt.
Wie viele leere Dateien befinden sich im aktuellen Verzeichnis (und Unterverzeichnissen)?
Um die Anzahl der leeren Dateien im aktuellen Verzeichnis zu zählen, leiten Sie den Befehl find an wc -l
weiterfind . -type f -empty | wc -l
Wie viele nicht leere Dateien befinden sich im aktuellen Verzeichnis (und Unterverzeichnissen)?
find . -type f -not -empty | wc -l
Hinweis: Suchoption -not kehrt die folgende Option zurück.
Ersetzen Sie in allen obigen Beispielen den Punkt ( . ) durch einen beliebigen anderen Verzeichnispfad, unter dem Sie die Dateien suchen möchten.
Mama, ich habe es gefunden! — 15 Praktische Beispiele für Linux-Suchbefehle Tutorial erklärt die MaxTiefe, MinTiefe und Invert-Match des Find-Befehls.