Anzahl der Dateien in einem Ordner unter Linux bestimmen

Möchte man wissen wir viele Dateien sich in einem Ordner unter Linux befinden, so kann man dies leicht durch eine Kombination der Befehle “find” und “wc” bewerkstelligen:

find /home/seeseekey/manyfiles/ -type f | wc -l

Der “find”-Befehl listet dabei alle Dateien in dem Ordner auf, während “wc” (word count) die ausgegebenen Zeilen zählt und man somit die Anzahl der Dateien ermittelt.

8 Kommentare » Schreibe einen Kommentar

  1. Der Befehl, wie du ihn geschrieben hast, durchsucht auch alle Unterverzeichnisse. Das kann natürlich gewollt sein. Wenn man nur die Dateien im aktuellen Verzeichnis listen will, muss man den Befehl entsprechend erweitern:

    find /home/seeseekey/manyfiles -maxdepth 1 -type f | wc -l

  2. finde “find” für diese Aufgabe etwas zu mächtig und schlage folgende Lösung vor:
    ls -l | grep -v ^d | wc -l

    * “ls -l” gibt den kompletten Inhalt des Verzeichnisses unterneinander aus
    * “grep -v ^d” filtert die ls-Ausgabe, das Argument “-v” invertiert das Suchergebnis, also alles, was im Listing nicht mit “d” anfängt wird ausgegeben
    * “wc -l” zählt die Zeilen

    wäre echt interessant, was schneller ist bzw. weniger Ressourcen verbraucht. Hängt sicher auch von der Größe des Ordners ab

    • @ jules,

      wenn ich deinen Befehl noch etwas anpasse,

      ls -lah | grep -v ^d | grep -v ^l | grep -v ^insgesamt | wc -l

      dann bekomme ich wirklich alle Dateien angezeigt. ;-)

      LG Leo

      • @leo
        OK, das stimmt.
        Aber das hier ist dann aber schöner :D :

        ls -lah | egrep -iv “^d|^l|^total” | wc -l

        • kurzer nachtrag: ^total bei mir, weil mein system englisch ist und das h beim ls ist eigentlich in diesem Fall unnötig

        • @jules
          > Aber das hier ist dann aber schö­ner :D :
          Aber auf jeden Fall !
          Danke, hab wieder was dazu gelernt. :-)

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.