Je veux trouver le nombre total de fichiers dans un dossier et tous ses sous-dossiers.
command-line
find
aux seins nus
la source
la source
find . -type f -ls | wc -l
find . -type f -print0 | tr -d -c '\0' | wc -c
find . -type f -printf . | wc -c
- J'adopte l'impression de ma solution au lieu de mon écho -exec.Utilisez la
tree
commande. Vous devrez peut-être installer letree
package.Il listera tous les fichiers et dossiers du dossier donné et un résumé à la fin.
la source
Pour compter les fichiers (même les fichiers sans extension) à la racine du répertoire en cours, utilisez:
Pour compter les fichiers (même ceux sans extension) de manière récursive à partir de la racine du répertoire en cours, utilisez:
la source
Le moyen le plus rapide et le plus simple consiste à utiliser
tree
. Sa vitesse est limitée par votre terminal de sortie. Ainsi, si vous transmettez le résultattail -1
, vous obtiendrez un résultat immédiat. Vous pouvez également contrôler à quel niveau de répertoire vous aimez les résultats, en utilisant l'-L
option. Pour une sortie colorisée, utilisez-C
. Par exemple:Si ce n'est pas déjà là, vous pouvez l'obtenir ici .
la source
Ne comptez pas les lignes de sortie de find, car les noms de fichiers contenant 99 sauts à la ligne compteront pour 100 fichiers.
la source
Utilisez cette commande pour chaque dossier du chemin.
la source
find semble être plus rapide que l'arbre, j'ai donc utilisé ci-dessous pour compter les fichiers dans chaque répertoire du répertoire de travail actuel (en ignorant les fichiers dans CWD) en permettant aux répertoires d'avoir des espaces:
ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done
la source
ls
est une très mauvaise idée.Vous pouvez utiliser
find . | wc -l
find .
listera tous les fichiers et dossiers et leur contenu commençant dans votre dossier actuel.wc -l
compte les résultats de findla source
J'irais moi-même avec cette option:
la source