133 votes

comptage du nombre de répertoires dans un répertoire spécifique

Comment compter le nombre de dossiers dans un répertoire spécifique. J'utilise la commande suivante, mais elle fournit toujours un dossier supplémentaire.

find /directory/ -maxdepth 1 -type d -print| wc -l

Par exemple, si j'ai 3 dossiers, cette commande en fournit 4. Si elle contient 5 dossiers, la commande en fournit 6. Comment cela se fait-il ?

13voto

Manish Shrivastava Points 4380

La meilleure façon de naviguer vers votre lecteur et de l'exécuter simplement.

ls -lR | grep ^d | wc -l

et pour trouver tous les dossiers au total, y compris les sous-répertoires ?

find /mount/point -type d | wc -l

...ou trouver tous les dossiers du répertoire racine (sans les sous-répertoires) ?

find /mount/point -maxdepth 1 -type d | wc -l

A la vôtre !

8voto

briceburg Points 700

Je pense que le plus simple est

  ls -ld images/* | wc -l

images est votre répertoire cible. Le drapeau -d limite aux répertoires, et le drapeau -l effectuera une liste par ligne, compatible avec le très familier wc -l pour le nombre de lignes.

8voto

user1388547 Points 111

Nombre de répertoire que nous pouvons trouver en utilisant la commande suivante

ls -l | grep "^d" | wc -l

5voto

MTK Points 1380

Quelques exemples utiles :

compte les fichiers dans le répertoire courant

/bin/ls -lA  | egrep -c '^-'

compte les répertoires dans le répertoire courant

/bin/ls -lA  | egrep -c '^d'

compte les fichiers et répertoires dans le répertoire courant

/bin/ls -lA  | egrep -c '^-|^d'

compter les fichiers et répertoires dans un sous-répertoire

/bin/ls -lA  subdir_name/ | egrep -c '^-|^d'

J'ai remarqué une chose étrange (du moins dans mon cas) :

Lorsque j'ai essayé avec ls au lieu de /bin/ls le site -A paramètre do not list implied . and .. NE FONCTIONNE PAS comme prévu. Lorsque j'utilise ls qui montre ./ et ../ Donc le résultat est un mauvais compte. SOLUTION : /bin/ls au lieu de ls

5voto

Arundev Points 812

Pour obtenir le nombre de répertoires - naviguer allez dans le répertoire et exécutez

 ls -l | grep -c ^d

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