Ich möchte die Gesamtanzahl der Dateien in einem Ordner und all seinen Unterordnern ermitteln.
command-line
find
oben ohne
quelle
quelle
find . -type f -ls | wc -l
find . -type f -print0 | tr -d -c '\0' | wc -c
find . -type f -printf . | wc -c
- Ich übernehme den Druck für meine Lösung anstelle meines -exec-Echos.Verwenden Sie den
tree
Befehl. Möglicherweise müssen Sie dastree
Paket installieren .Es listet alle Dateien und Ordner unter dem angegebenen Ordner auf und listet am Ende eine Zusammenfassung auf.
quelle
Verwenden Sie zum Zählen von Dateien (auch Dateien ohne Erweiterung) im Stammverzeichnis des aktuellen Verzeichnisses Folgendes:
Verwenden Sie zum rekursiven Zählen von Dateien (auch Dateien ohne Erweiterung) aus dem Stammverzeichnis des aktuellen Verzeichnisses Folgendes:
quelle
Der schnellste und einfachste Weg ist die Verwendung
tree
. Die Geschwindigkeit wird durch Ihr Ausgangsterminal begrenzt. Wenn Sie also das Ergebnistail -1
weiterleiten, erhalten Sie sofort ein Ergebnis. Mit der-L
Option können Sie auch steuern, auf welche Verzeichnisebene die Ergebnisse Ihnen gefallen . Verwenden Sie für die farbige Ausgabe-C
. Zum Beispiel:Wenn es noch nicht da ist, können Sie es hier bekommen .
quelle
Zählen Sie nicht die Ausgabezeilen von find, da Dateinamen, die 99 neue Zeilen enthalten, als 100 Dateien gezählt werden.
quelle
Verwenden Sie diesen Befehl für jeden Ordner im Pfad
quelle
find ist anscheinend schneller als tree, daher habe ich im Folgenden die Dateien in jedem Verzeichnis des aktuellen Arbeitsverzeichnisses gezählt (wobei Dateien in CWD ignoriert wurden), wobei die Verzeichnisse Leerzeichen enthalten dürfen:
ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done
quelle
ls
ist eine sehr schlechte Idee.Sie können verwenden
find . | wc -l
find .
listet alle Dateien und Ordner sowie deren Inhalt auf, beginnend in Ihrem aktuellen Ordner.wc -l
zählt die Ergebnisse von findquelle
Ich würde mich für diese Option entscheiden:
quelle