Manchmal möchten wir die Anzahl der Dateien in einem Verzeichnis in Linux finden. Finden Sie beispielsweise heraus, wie viele Bilder im Upload-Verzeichnis von JournalDev WordPress vorhanden sind.
Es gibt verschiedene Möglichkeiten, dies zu tun, schauen wir uns einige der häufigsten Szenarien und den besten Befehl an, um die Anzahl der Dateien in einem Verzeichnis zu finden.
1. Finden Sie die Anzahl der Dateien in einem Verzeichnis
Wir können den Befehl ls zusammen mit dem Befehl wc verwenden, um die Anzahl der Dateien in einem Verzeichnis zu zählen. Zählen wir die Anzahl der Dateien in meinem Theme-Root-Verzeichnis.
# ls 404.php archive.php functions.php inc layouts phpcs.xml.dist screenshot.png single.php webpack LICENSE comments.php header.php index.php package-lock.json postcss.config.js search.php src woocommerce.css Plugins dist home.php js package.json readme.txt sidebar-left.php style.css README.md footer.php images languages page.php rtl.css sidebar.php template-parts # ls -1 | wc -l 34
Wenn Sie sich das Bild ansehen, sind die blau gefärbten Elemente Verzeichnisse. Sie sind auch als Datei in der Ausgabe enthalten.
Was ist, wenn wir nur Dateien und keine Verzeichnisse zählen wollen?
# ls -p | grep -v / | wc -l 24 #
- Der Befehl „ls -p“ gibt Verzeichnisnamen mit „/“ am Ende aus.
- Der Befehl „grep -v /“ filtert die Ausgabe und gibt nur den Namen aus, der kein „/“ enthält, wodurch alle Verzeichnisse weggelassen werden.
- Schließlich zählt „wc -l“ die Zeilen in der Ausgabe und gibt sie aus.
Wenn Sie die Anzahl der Verzeichnisse nur innerhalb eines Verzeichnisses finden möchten, verwenden Sie auf ähnliche Weise den folgenden Befehl.
# ls -p | grep / | wc -l 10 #
Hinweis:Die obigen Befehle suchen nicht nach versteckten Dateien. Wenn Sie möchten, dass die Zählung auch versteckte Dateien enthält, verwenden Sie die Option „-a“ mit dem Befehl ls.
# ls -a1 | wc -l 41 #
Dieser Befehl zählt „.“ und „..“ auch, so dass Sie dies gegebenenfalls in Ihrem Shell-Skript berücksichtigen müssen.
2. Anzahl der Dateien in einem Verzeichnis und Unterverzeichnissen rekursiv finden
Die obigen Beispiele eignen sich gut, um Dateien und Verzeichnisse in einem Verzeichnis zu zählen. Wenn Sie jedoch auch die Anzahl der Dateien einschließlich der Unterverzeichnisse zählen möchten, müssen Sie den Befehl find verwenden.
# find . -type f ./.test_file ./functions.php ./logger/class-logger-writter.php ./logger/class-logger-export.php ./logger/assets/js/base.js ./logger/assets/css/base.css ./logger/assets/css/base.less ./logger/assets/css/base.css.map ./logger/class-logger-reader.php ./class-protector.php ./class-anti-spam-plugin.php # find . -type f | wc -l 11 #
- Die Suchbefehlsoption „-type f“ wird verwendet, um nach regulären Dateien zu suchen.
- Dieser Befehl ignoriert alle Verzeichnisse, „.“- und „..“-Dateien. Aber es wird versteckte Dateien in die Ausgabe einschließen.
- Der Befehl „wc -l“ zählt die Gesamtzahl der Zeilen und gibt sie aus, wodurch wir die Anzahl der Dateien erhalten.
Referenzen:
- Manpage für wc-Befehle
- Befehlsseite finden