Anzahl der Dateien in Ordnern und Unterordnern suchen?

115

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

    
topless 08.04.2011, 13:55
quelle

9 Antworten

185

Kann so etwas wie

sein

find . -type f | wc -l

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

    
sagarchalise 08.04.2011, 14:06
quelle
22

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

Es werden alle Dateien und Ordner unter dem angegebenen Ordner und am Ende eine Zusammenfassung angezeigt.

    
Egil 08.04.2011 14:09
quelle
10

Um Dateien (auch Dateien ohne Erweiterung) im Stammverzeichnis des aktuellen Verzeichnisses zu zählen, verwenden Sie:

ls -l | grep ^- | wc -l

Um Dateien (auch Dateien ohne Erweiterung) rekursiv aus dem Stammverzeichnis des aktuellen Verzeichnisses zu zählen, verwenden Sie:

ls -lR | grep ^- | wc -l
    
user38537 12.11.2013 21:39
quelle
9

Der schnellste und einfachste Weg ist die Verwendung von tree . Seine Geschwindigkeit wird durch Ihr Ausgabeterminal begrenzt. Wenn Sie das Ergebnis an tail -1 weiterleiten, erhalten Sie sofort ein Ergebnis. Mit der Option -L können Sie auch festlegen, auf welcher Verzeichnisebene die Ergebnisse Ihnen 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

Falls noch nicht vorhanden, können Sie es hier herunterladen.

    
not2qubit 15.01.2014 14:20
quelle
4
find -type f -printf . | wc -c

Zählen Sie die Ausgabezeilen von find nicht, da Dateinamen mit 99 Zeilenumbrüchen als 100 Dateien zählen.

    
user unknown 08.04.2011 16:21
quelle
2

Verwenden Sie diesen Befehl für jeden Ordner im Pfad

for D in *; do echo $D; find $D -type f| wc -l; done
    
Sriram Murali 20.03.2014 19:02
quelle
1

find scheint schneller zu sein als Baum, daher habe ich unten verwendet, um Dateien in jedem Verzeichnis des aktuellen Arbeitsverzeichnisses zu zählen (wobei Dateien in CWD ignoriert werden), wobei Verzeichnisse Leerzeichen enthalten dürfen:

ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done

    
Mike Bounds 21.07.2016 11:47
quelle
0

Ich würde diese Option selbst wählen:

  

ls -alR | grep -c ^ -

    
Charles 29.05.2016 08:55
quelle
-1

Sie können find . | wc -l

verwenden

find . listet alle Dateien und Ordner und deren Inhalte auf, beginnend in Ihrem aktuellen Ordner.
wc -l zählt die Ergebnisse der Suche

    
david 08.04.2011 14:06
quelle

Tags und Links