seeseekey.net - Invictus Deus Ex Machina

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

  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

    Antworten

  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

    Antworten

    • @ 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

      Antworten

Schreibe einen Kommentar

You have to agree to the comment policy.