it-swarm.com.de

Anzahl der Dateien in Ordnern und Unterordnern suchen?

Ich möchte die Gesamtanzahl der Dateien in einem Ordner und allen Unterordnern ermitteln.

140
topless

Kann so etwas sein

find . -type f | wc -l

würde den Trick machen. Versuchen Sie den Befehl aus dem übergeordneten Ordner.

219
sagarchalise

Verwenden Sie den Befehl tree. Möglicherweise müssen Sie das Paket tree installieren.

Es listet alle Dateien und Ordner unter dem angegebenen Ordner auf und listet am Ende eine Zusammenfassung auf.

27
Egil

Verwenden Sie zum Zählen von Dateien (auch Dateien ohne Erweiterung) im Stammverzeichnis des aktuellen Verzeichnisses Folgendes:

ls -l | grep ^- | wc -l

Verwenden Sie zum Zählen von Dateien (auch Dateien ohne Erweiterung) rekursiv aus dem Stammverzeichnis des aktuellen Verzeichnisses:

ls -lR | grep ^- | wc -l
13
user38537

Der schnellste und einfachste Weg ist die Verwendung von tree. Die Geschwindigkeit wird durch Ihr Ausgangsterminal begrenzt. Wenn Sie das Ergebnis also an tail -1 weiterleiten, erhalten Sie sofort ein Ergebnis. Mit der Option -L können Sie auch steuern, auf welche Verzeichnisebene Ihnen die Ergebnisse gefallen. Verwenden Sie für die farbige Ausgabe -C. Zum Beispiel:

$ tree share/some/directory/ | tail -1
558 directories, 853 files

$ tree -L 2 share/some/directory/ | tail -1
120 directories, 3 files

Wenn es noch nicht da ist, können Sie es bekommen hier .

13
not2qubit
find -type f -printf . | wc -c

Zählen Sie nicht die Ausgabezeilen von find, da Dateinamen, die 99 neue Zeilen enthalten, als 100 Dateien gezählt werden.

8
user unknown

Verwenden Sie diesen Befehl für jeden Ordner im Pfad

for D in *; do echo $D; find $D -type f| wc -l; done
3
Sriram Murali

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

1
Mike Bounds

Sie können find . | wc -l verwenden

find . listet alle Dateien und Ordner sowie deren Inhalt ab Ihrem aktuellen Ordner auf.
wc -l zählt die Ergebnisse von find

0
david

Ich würde mich für diese Option entscheiden:

ls -alR | grep -c ^ -

0
Charles