Parfois, nous voulons trouver le nombre de fichiers dans un répertoire sous Linux. Par exemple, trouver combien d'images sont présentes dans le répertoire de téléchargement de JournalDev WordPress.
Il existe différentes façons de le faire, examinons certains des scénarios courants et la meilleure commande pour trouver le nombre de fichiers dans un répertoire.
1. Trouver le nombre de fichiers dans un répertoire
Nous pouvons utiliser la commande ls avec la commande wc pour compter le nombre de fichiers dans un répertoire. Comptons le nombre de fichiers dans le répertoire racine de mon thème.
# 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
Si vous regardez l'image, les éléments de couleur bleue sont des répertoires. Ils sont également inclus en tant que fichier dans la sortie.
Et si nous voulons compter uniquement les fichiers et non les répertoires ?
# ls -p | grep -v / | wc -l 24 #
- La commande "ls -p" imprime les noms de répertoires avec "/" à la fin.
- La commande "grep -v /" filtre la sortie et imprime uniquement le nom qui ne contient pas "/", omettant ainsi tous les répertoires.
- Enfin, "wc -l" compte les lignes de la sortie et l'imprime.
De même, si vous voulez trouver le nombre de répertoires uniquement à l'intérieur d'un répertoire, utilisez la commande ci-dessous.
# ls -p | grep / | wc -l 10 #
Remarque :Les commandes ci-dessus ne recherchent pas les fichiers cachés. Si vous souhaitez que le décompte inclue également les fichiers cachés, utilisez l'option "-a" avec la commande ls.
# ls -a1 | wc -l 41 #
Cette commande comptera "." et ".." aussi, vous devrez donc en tenir compte dans votre script shell si nécessaire.
2. Trouver le nombre de fichiers dans un répertoire et des sous-répertoires de manière récursive
Les exemples ci-dessus sont bons pour compter les fichiers et les répertoires dans un répertoire. Mais, si vous souhaitez également compter le nombre de fichiers, y compris les sous-répertoires, vous devrez utiliser la commande find.
# 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 #
- L'option "-type f" de la commande de recherche est utilisée pour rechercher des fichiers normaux.
- Cette commande ignorera tous les répertoires, les fichiers "." et "..". Mais, il inclura les fichiers cachés dans la sortie.
- La commande "wc -l" comptera le nombre total de lignes et l'imprimera, nous donnant ainsi le nombre de fichiers.
Références :
- Page de manuel de la commande wc
- Rechercher la page de manuel de la commande