Für das aktuelle Verzeichnis:
find -type f | wc -l
Das sollte funktionieren:
find DIR_NAME -type f | wc -l
Erklärung:
-type fnur Dateien einzuschließen.|(und nicht¦) leitetfindum Standardausgabe des Befehls aufwcStandardeingabe des Befehls.wc(kurz für Wortzahl) zählt Zeilenumbrüche, Wörter und Bytes bei seiner Eingabe (docs).-lum nur Zeilenumbrüche zu zählen.
Hinweise:
- Ersetzen Sie
DIR_NAMEmit.um den Befehl im aktuellen Ordner auszuführen. - Sie können auch die
-type fentfernen um Verzeichnisse (und Symlinks) in die Zählung einzubeziehen. - Es ist möglich, dass dieser Befehl überzählt, wenn Dateinamen Zeilenumbrüche enthalten können.
Erklärung, warum Ihr Beispiel nicht funktioniert:
In dem von Ihnen gezeigten Befehl verwenden Sie nicht die "Pipe" (| ), um zwei Befehle irgendwie zu verbinden, aber der unterbrochene Balken (¦ ), die die Shell nicht als Befehl oder ähnliches erkennt. Deshalb erhalten Sie diese Fehlermeldung.