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/directorystartet die Suche innerhalb des angegebenen Verzeichnisses.-type fsagtfind, nur nach Dateien zu suchen (nicht nach Verzeichnissen).- Die
|(Pipe) leitet die Ausgabe desfind-Befehls an den nächsten Befehl weiter. wc -lzählt die Anzahl der Zeilen in der Eingabe, die es erhält, was aufgrund der Verwendung vonfindder 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
5968Wie 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 -lErsetzen Sie einfach /path/to/the/directory durch den tatsächlichen Pfad. Hier ist die Aufschlüsselung des Befehls:
find /path/to/the/directorystartet die Suche innerhalb des angegebenen Verzeichnisses.-type dsagtfind, nur nach Verzeichnissen zu suchen.- Die
|(Pipe) leitet die Ausgabe desfind-Befehls an den nächsten Befehl weiter. wc -lzählt die Anzahl der Zeilen in der Eingabe, die es erhält, was der Anzahl der vonfindgefundenen Verzeichnisse entspricht.
Dieser Befehl zählt alle Verzeichnisse einschließlich des Stammverzeichnisses der Suche.
Beispiel:
$ find ~/Downloads -type d | wc -l
563Wie 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 -lDieser 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 -lAusschluss 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 -lBeispiel: Unterverzeichnisse zählen, ohne das oberste Verzeichnis:
$ find /path/to/directory -mindepth 1 -type d | wc -lAlle 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 -lTipps 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 (ffür Dateien,dfü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
maxdepthundmindepthIhre 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
488Wie 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 Befehlsls -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 Befehlgrep ^derzeugt 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:
findBefehl: Standardmäßig schließtfindversteckte Verzeichnisse (die mit einem.beginnen) in seine Suche und Zählung ein.ls -lRBefehl: 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-amitls).
2. Anzahl des Stammverzeichnisses:
find-Befehl: Die ausfind /path/to/directory -type d | wc -lerhaltene Anzahl umfasst das angegebene Stammverzeichnis in ihrer Gesamtzahl.ls -lR | grep ^d | wc -lBefehl: 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 vongrepinterpretiert 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
