Mit dem wc-Befehl Dateien in Linux zählen
Der wc (word count) Befehl ist ein vielseitiges Linux-Tool, das Zeilen, Wörter, Zeichen und Bytes in Dateien ermittelt. Ursprünglich für die Textanalyse entwickelt, lässt er sich mit Befehlen wie find, ls und xargs kombinieren, um Dateien in Verzeichnissen zu zählen und weitere Datenverarbeitungsaufgaben durchzuführen.
In dieser Anleitung wird gezeigt, wie man wc zusammen mit anderen Linux-Werkzeugen nutzt, um Dateien in verschiedenen Kontexten zu zählen – beispielsweise rekursiv in Unterordnern, gefiltert nach Dateiendung, Größe oder Änderungsdatum. Die Beispiele reichen von einfachen Zeilen-Zählungen bis hin zu sicheren, skriptfreundlichen Methoden für den Praxiseinsatz.
wc Befehlssyntax
Der wc Befehl verarbeitet Eingaben und gibt die Anzahl von Zeilen, Wörtern, Zeichen und mehr zurück. Er kann direkt mit Dateien verwendet oder über Pipes mit Ausgaben anderer Befehle kombiniert werden.
Syntax:
wc [OPTION]... [DATEI]...
- OPTION: Legt fest, welche Art von Zählung durchgeführt wird (Zeilen, Wörter, Bytes usw.).
- DATEI: Eine oder mehrere Dateien zur Analyse. Wenn weggelassen, liest wc von der Standardeingabe.
Häufig genutzte wc Optionen
Option | Beschreibung |
---|---|
-l, –lines | Zeilen zählen |
-w, –words | Wörter zählen |
-c, –bytes | Bytes zählen |
-m, –chars | Zeichen zählen |
-L, –max-line-length | Länge der längsten Zeile anzeigen |
Beim Zählen von Dateien mit Werkzeugen wie ls oder find ist die Option -l
am relevantesten, da jede Datei oder jedes Verzeichnis in einer eigenen Zeile erscheint.
Dateien in einem Verzeichnis mit wc zählen
Der wc Befehl zählt keine Dateien direkt, sondern Zeilen, Wörter und Zeichen. In Kombination mit ls oder find lassen sich Dateien und Verzeichnisse jedoch zuverlässig ermitteln.
Dateien mit ls und wc zählen
Mit ls lassen sich Inhalte auflisten und die Ausgabe per Pipe an wc -l übergeben. Jede Zeile entspricht einer Datei oder einem Ordner.
Alle sichtbaren Dateien und Verzeichnisse zählen (ohne versteckte)
$ ls | wc -l
Nur reguläre Dateien zählen
$ ls -l | grep "^- " | wc -l
Nur Verzeichnisse zählen
$ ls -l | grep "^d" | wc -l
Dateien mit einer bestimmten Endung zählen (Beispiel: .txt)
$ ls *.txt | wc -l
Hinweis: Methoden mit ls können fehlerhaft sein, wenn Dateinamen Sonderzeichen oder Leerzeichen enthalten. Für robustere Ergebnisse empfiehlt sich find.
Dateien mit find und wc zählen
Der find Befehl ist präziser und flexibler, insbesondere für rekursive Suchen.
Alle Dateien rekursiv zählen
$ find . -type f | wc -l
Dateien nur im aktuellen Verzeichnis zählen (nicht rekursiv)
$ find . -maxdepth 1 -type f | wc -l
Versteckte Dateien zählen
$ find . -type f -name ".*" | wc -l
wc mit anderen Befehlen kombinieren
wc lässt sich mit find kombinieren, um erweiterte Abfragen nach Endung, Größe, Änderungszeit oder Dateiattributen auszuführen – nützlich für Audits und Administration.
Dateien nach Endung zählen
$ find . -type f -name "*.jpg" | wc -l
Dateien nach Änderungszeit zählen
$ find . -type f -mtime -7 | wc -l
Dateien nach Größe zählen
$ find . -type f -size +1M | wc -l
Dateien nach Attributen zählen
Symbolische Links zählen
$ find . -type l | wc -l
Ausführbare Dateien zählen
$ find . -type f -executable | wc -l
Dateien des aktuellen Benutzers zählen
$ find . -type f -user $(whoami) | wc -l
Dateien gruppiert nach Endung zählen
$ find . -type f | sed -n 's/.*\.//p' | sort | uniq -c | sort -nr
Zeilen, Wörter und Bytes über Dateien hinweg zählen
Mit find und xargs wc lassen sich Zeilen, Wörter und Bytes über mehrere Dateien hinweg erfassen.
Inhalte von Textdateien zählen
$ find . -type f -name "*.txt" | xargs wc
Umgang mit speziellen Dateinamen
$ find . -type f -print0 | xargs -0 wc
Fazit
In dieser Anleitung wurde gezeigt, wie man den wc Befehl mit Tools wie find, ls und xargs kombiniert, um Dateien in Linux-Verzeichnissen nach Größe, Typ, Attributen und Änderungsdatum zu zählen. Diese Methoden liefern präzise und flexible Ergebnisse, die sich gut für Administration und Skripte eignen.
Auch wenn wc selbst keine Dateien zählt, wird es in Verbindung mit gut strukturierten Eingaben anderer Befehle zu einem leistungsstarken Werkzeug. Weitere Details finden sich in der Manpage mit man wc oder in der GNU-Dokumentation online.