Angenommen, ich habe in meinem Ordner ~/list
eine große Anzahl von Ordnern mit jeweils eigenen Unterordnern und Unterordnern usw., und auf jeder Ebene befinden sich fast jede Menge Dateien. Einige dieser Dateien und Ordner sind jedoch leer. Wie kann ich sie alle rekursiv durchsuchen, um die leeren Dateien und Ordner zu finden? Und lassen Sie sie dann in einer Liste mit Dateispeicherorten anzeigen, damit ich weiß, wo sich die einzelnen Speicherorte befinden (es sollte auch klar sein, welche Datei und welche ein Ordner ist, da nicht alle Dateien Dateierweiterungen aufweisen). Ich verwende Ubuntu GNOME 15.10 mit GNOME 3.18.
Bitte beachten Sie, dass es auch sehr nützlich wäre, wenn Sie mir mitteilen würden, ob eine Datei leer aussieht, dies aber nicht war (z. B. wenn Leerzeichen oder Zeilenumbrüche enthalten sind oder so). Und würde zwischen einer wirklich leeren Datei und einer Datei unterscheiden, die in der Ausgabe nur leer aussieht.
Antworten:
Von
man find
Es reicht also aus, leere Dateien und Verzeichnisse zu finden
Um den Typ anzugeben, können Sie den
%y
Ausgabeformat-Bezeichner verwendenz.B
oder nutzen Sie ein externes Programm wie
ls
, das eine--classify
Option enthältdh
Wenn Ihre Definition von "leer" so erweitert wird, dass sie nur Dateien mit Leerzeichen enthält, wird dies komplizierter und rechenintensiver, da Sie jetzt tatsächlich mindestens alle nicht leeren Dateien öffnen und deren Inhalt untersuchen müssen. Der effizienteste Weg, den ich mir aus der Vogelperspektive vorstellen kann, wäre so etwas wie
(entweder leer ODER eine Datei UND grep erkennt nicht mindestens ein nicht leeres Zeichen). Wahrscheinlich gibt es aber einen besseren Weg.
quelle
Von
~/list
Ordner:zum Auflisten leerer Verzeichnisse und
zum Auflisten leerer Dateien.
zum Auflisten leerer Ordner und Dateien, einschließlich Leerzeichen und Leerzeilen
quelle
[ `grep -c [[:alnum:]] "{}"` -eq 0 ]
Lässt Dateien durch, die nur Zeichen enthalten, die nicht im[A-Za-z0-9]
Satz enthalten sind.