Website-Suche

Wie man Dateien und Verzeichnisse in Linux zählt: Ein Anfängerleitfaden


Zu wissen, wie man effizient Dateien und Verzeichnisse in Linux zählt, ist eine wertvolle Fähigkeit für Systemadministratoren und alle, die mit großen Datenmengen arbeiten. In diesem Leitfaden werde ich erklären, wie ich einfache Kommandozeilen-Tools wie find, wc und ls verwende, um schnell die genaue Anzahl von Dateien und Ordnern in Linux- und Unix-Betriebssystemen zu ermitteln.

Lass uns anfangen!

Zähle Dateien in einem Verzeichnis mit dem Befehl find

Um alle Dateien in einem angegebenen Pfad zu zählen, einschließlich aller Unterverzeichnisse, können Sie den find-Befehl in Kombination mit wc -l in Ihrem Linux-Terminal verwenden. So können Sie es machen:

1. Öffnen Sie Ihr Terminal.

2. Verwenden Sie den folgenden Befehl und ersetzen Sie /path/to/your/directory durch den tatsächlichen Pfad Ihres Verzeichnisses:

$ find /path/to/your/directory -type f | wc -l

Lassen Sie uns den obigen Befehl aufschlüsseln und sehen, was jeder Teil des Befehls macht:

  • find /path/to/your/directory startet die Suche innerhalb des angegebenen Verzeichnisses.
  • -type f sagt find, nur nach Dateien zu suchen (nicht nach Verzeichnissen).
  • Die | (Pipe) leitet die Ausgabe des find-Befehls an den nächsten Befehl weiter.
  • wc -l zählt die Anzahl der Zeilen in der Eingabe, die es erhält, was aufgrund der Verwendung von find der Anzahl der Dateien entspricht.

Dies gibt die Gesamtzahl der Dateien im angegebenen Verzeichnis und in allen seinen Unterverzeichnissen aus.

Beispiel:

Um die Anzahl der Dateien im Download-Verzeichnis zu zählen, wäre der Befehl:

$ find ~/Downloads -type f | wc -l
5968

Dateien in einem Verzeichnis über die Befehlszeile in Linux zählen

Wie Sie sehen können, gibt es 5968 Dateien im Downloads-Verzeichnis.

Verzeichnisse mit dem find-Befehl zählen

Im vorherigen Beispiel haben wir die Anzahl der Dateien im angegebenen Verzeichnis gezählt. Wie sieht es mit den Verzeichnissen aus? Können wir den Befehl find verwenden, um Unterverzeichnisse in einem bestimmten Verzeichnis zu finden?

Ja, wir können die Kommandozeile verwenden, um die Anzahl der Unterverzeichnisse innerhalb eines bestimmten Verzeichnisses in Linux zu finden. Sie werden den Befehl find erneut verwenden, aber diesmal nach Verzeichnissen (-type d) anstelle von Dateien suchen.

$ find /path/to/the/directory -type d | wc -l

Ersetzen Sie einfach /path/to/the/directory durch den tatsächlichen Pfad. Hier ist die Aufschlüsselung des Befehls:

  • find /path/to/the/directory startet die Suche innerhalb des angegebenen Verzeichnisses.
  • -type d sagt find, nur nach Verzeichnissen zu suchen.
  • Die | (Pipe) leitet die Ausgabe des find-Befehls an den nächsten Befehl weiter.
  • wc -l zählt die Anzahl der Zeilen in der Eingabe, die es erhält, was der Anzahl der von find gefundenen Verzeichnisse entspricht.

Dieser Befehl zählt alle Verzeichnisse einschließlich des Stammverzeichnisses der Suche.

Beispiel:

$ find ~/Downloads -type d | wc -l
563
Verzeichnisse von der Befehlszeile in Linux zählen

Wie Sie sehen können, gibt es 563 Unterverzeichnisse im ~/Downloads-Verzeichnis, einschließlich des Verzeichnisses selbst.

Wenn Sie das Stammverzeichnis von der Zählung ausschließen möchten, ziehen Sie einfach 1 vom Ergebnis ab.

Zählen von Dateien und Verzeichnissen mit dem find-Befehl unter Verwendung der Optionen maxdepth und mindepth

Beim Zählen von Dateien und Verzeichnissen mit dem find-Befehl in Linux kann die effektive Verwendung der Optionen maxdepth und mindepth Ihnen helfen, Ihre Suche gezielt zu steuern und zu vermeiden, unnötige Elemente zu zählen.

So können Sie diese Optionen zu Zählzwecken verwenden.

Dateien innerhalb eines bestimmten Tiefenbereichs zählen

Um Dateien innerhalb eines bestimmten Bereichs von Verzeichnistiefen zu zählen, können Sie sowohl mindepth als auch maxdepth angeben. Dies ist nützlich, wenn Sie Dateien auf oberster Ebene ausschließen oder in bestimmte Unterverzeichnisebenen eintauchen möchten.

Beispiel: Zählen Sie nur Dateien in der zweiten Ebene von Unterverzeichnissen:

$ find /path/to/directory -mindepth 2 -maxdepth 2 -type f | wc -l

Dieser Befehl zählt Dateien, die genau zwei Verzeichnisebenen vom Startpunkt entfernt sind.

Zählen von Verzeichnissen auf einer bestimmten Tiefe

Ähnlich können Sie, um Verzeichnisse auf einer bestimmten Tiefe zu zählen, die Optionen mindepth und maxdepth entsprechend anpassen.

Beispiel: Zähle Verzeichnisse, die genau drei Ebenen tief sind:

$ find /path/to/directory -mindepth 3 -maxdepth 3 -type d | wc -l

Ausschluss des obersten Verzeichnisses aus der Zählung

Wenn Sie Elemente zählen, aber das oberste Verzeichnis selbst oder Elemente im obersten Verzeichnis ausschließen möchten, können Sie das folgende Beispielkommando verwenden.

Beispiel: Zählen Sie alle Dateien mit Ausnahme des obersten Verzeichnisses:

$ find /path/to/directory -mindepth 1 -type f | wc -l

Beispiel: Unterverzeichnisse zählen, ohne das oberste Verzeichnis:

$ find /path/to/directory -mindepth 1 -type d | wc -l

Alle Dateien oder Verzeichnisse bis zu einer bestimmten Tiefe zählen

Wenn Sie alles bis zu einer bestimmten Tiefe einbeziehen möchten, würden Sie maxdepth verwenden, ohne mindepth anzugeben.

Beispiel: Zählen Sie alle Dateien bis einschließlich der zweiten Ebene von Unterverzeichnissen:

$ find /path/to/directory -maxdepth 2 -type f | wc -l

Tipps für die effektive Nutzung

  • Seien Sie klar über Ihr Ziel: Verstehen Sie, ob Sie an Dateien, Verzeichnissen oder beidem interessiert sind, und passen Sie die -type-Option entsprechend an (f für Dateien, d für Verzeichnisse).
  • Leistung berücksichtigen: Das Durchsuchen sehr tiefer Verzeichnisstrukturen kann zeitaufwendig sein. Wenn Sie nur an einem bestimmten Tiefenbereich interessiert sind, kann das entsprechende Festlegen von maxdepth und mindepth Ihre Suche beschleunigen.
  • Überprüfen Sie Ihre Tiefenannahmen: Bevor Sie eine große Zähloperation durchführen, testen Sie Ihren Befehl mit einer kleinen Teilmenge Ihres Zielverzeichnisses, um sicherzustellen, dass Sie in der richtigen Tiefe zählen.

Sie können Dateien und Ordner in Linux genauer und schneller zählen, indem Sie anpassen, wie tief Sie suchen möchten, mithilfe von "mindepth" und "maxdepth", je nachdem, was Sie benötigen.

Zähle Verzeichnisse und deren Unterverzeichnisse mit dem Befehl ls

Die Kombination aus ls, grep und wc ist eine weitere Methode, um die Anzahl der Verzeichnisse innerhalb eines bestimmten Verzeichnisses, einschließlich aller Unterverzeichnisse, zu zählen.

Navigieren Sie zu dem Verzeichnis, in dem Sie die Anzahl der Unterverzeichnisse zählen möchten:

$ cd MyFiles/

Und führen Sie den folgenden Befehl aus:

$ ls -lR | grep ^d | wc -l
488

Wie Sie in der obigen Ausgabe sehen, beträgt die Gesamtzahl der Unterverzeichnisse in ~/MyFiles 488.

Hier ist eine kurze Erklärung, wie dieser Befehl funktioniert:

  • ls -lR: Dieser Befehl listet alle Dateien und Verzeichnisse rekursiv im aktuellen Verzeichnis und seinen Unterverzeichnissen auf und zeigt detaillierte Informationen über jede Datei und jedes Verzeichnis an.
  • grep ^d: Dieser Befehl filtert die Ausgabe des Befehls ls -lR, indem er nur die Zeilen auswählt, die mit „d“ beginnen, was auf Verzeichnisse hinweist.
  • wc -l: Dieser Befehl zählt die Anzahl der Zeilen in der Ausgabe, die vom Befehl grep ^d erzeugt wird.

Also listet der Befehl insgesamt alle Verzeichnisse und Unterverzeichnisse im aktuellen Verzeichnis und dessen Unterverzeichnissen auf, zählt dann die Anzahl der Verzeichnisse und gibt diese Zahl aus. Im Wesentlichen sagt er Ihnen, wie viele Verzeichnisse im aktuellen Verzeichnis und dessen Unterverzeichnissen existieren.

Es ist eine praktische Methode, besonders wenn man sich bereits in einem bestimmten Verzeichnis befindet und eine schnelle Verzeichniszählung möchte.

Warum zeigen die Befehle find und ls unterschiedliche Zählungen beim Zählen von Verzeichnissen an?

Die Befehle ls -lR | grep ^d | wc -l und find /path/to/directory -type d | wc -l zählen beide Verzeichnisse, aber sie tun dies auf unterschiedliche Weise, was zu unterschiedlichen Ergebnissen führen kann.

Hier ist der Grund, warum die Anzahl unterschiedlich ist:

1. Versteckte Verzeichnisse:

  • find Befehl: Standardmäßig schließt find versteckte Verzeichnisse (die mit einem . beginnen) in seine Suche und Zählung ein.
  • ls -lR Befehl: Diese Kombination listet ohne zusätzliche Optionen keine versteckten Verzeichnisse auf, es sei denn, es wird ausdrücklich angewiesen, dies zu tun (durch Verwendung der Option -a mit ls).

2. Anzahl des Stammverzeichnisses:

  • find-Befehl: Die aus find /path/to/directory -type d | wc -l erhaltene Anzahl umfasst das angegebene Stammverzeichnis in ihrer Gesamtzahl.
  • ls -lR | grep ^d | wc -l Befehl: Diese Methode zählt typischerweise nur die Unterverzeichnisse und nicht das Stammverzeichnis, von dem aus der Befehl ausgeführt wird, abhängig davon, wie die Ausgabe von grep interpretiert wird.

Fazit

Egal, ob Sie eine externe Festplatte aufräumen oder einfach nur neugierig auf den Inhalt eines Ordners sind, ist es eine wichtige Fähigkeit, die Anzahl der Dateien und Verzeichnisse an einem bestimmten Ort schnell zählen zu können.

Durch die Verwendung der entsprechenden Befehle wie find, ls und wc können Sie effizient die genaue Anzahl der Dateien und Verzeichnisse an einem bestimmten Ort oder sogar in Ihrem gesamten Linux-System ermitteln.

Verwandte Lektüre:

  • Wie man die Optionen maxdepth und mindepth mit dem Linux-Befehl find verwendet