154 votes

Comment compter le nombre de fichiers dans chaque répertoire ?

Je suis capable de lister tous les répertoires par

find ./ -type d

J'ai essayé de lister le contenu de chaque répertoire et de compter le nombre de fichiers dans chaque répertoire en utilisant la commande suivante

find ./ -type d | xargs ls -l | wc -l

Mais cela additionne le nombre total de lignes retournées par

find ./ -type d | xargs ls -l

Y a-t-il un moyen de compter le nombre de fichiers dans chaque répertoire ?

0voto

lilith Points 26

Une commande miracle super rapide, qui parcourt récursivement les fichiers pour compter le nombre d'images dans un répertoire et organiser la sortie par extension d'image :

find . -type f | sed -e 's/.*\.//' | sort | uniq -c | sort -n | grep -Ei '(tiff|bmp|jpeg|jpg|png|gif)$'

Crédits : https://unix.stackexchange.com/a/386135/354980

0voto

Benz Benz Points 111

J'ai édité le script afin d'exclure tous les node_modules à l'intérieur de celui qui a été analysé.

Ceci peut être utilisé pour vérifier si le nombre de fichiers du projet dépasse le nombre maximum que le file watcher peut gérer.

find . -type d ! -path "*node_modules*" -print0 | while read -d '' -r dir; do
    files=("$dir"/*)
    printf "%5d files in directory %s\n" "${#files[@]}" "$dir"
done

Pour vérifier le nombre maximum de fichiers que votre système peut regarder :

cat /proc/sys/fs/inotify/max_user_watches

node_modules devrait être ajouté aux chemins exclus de votre IDE/éditeur sur les systèmes lents, et le nombre d'autres fichiers ne devrait pas idéalement dépasser le maximum (qui peut être changé cependant).

0voto

Méthode facile :

find ./|grep "Search_file.txt" |cut -d "/" -f2|sort |uniq -c

-1voto

RexBarker Points 666

Une façon simple de trouver récursivement des fichiers d'un type donné. Dans ce cas, les fichiers .jpg pour tous les dossiers du répertoire actuel :

find . -name *.jpg -print | wc -l

-2voto

Dimitar Marinov Points 463

Omg pourquoi ces commandes complexes. utilisez simplement quelque chose comme

find whatever_folder | wc -l

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X