Mise en garde

Pour compter le nombre de fichier au sein d'un répertoire, le shelliste débutant aura tendance à exécuter : ls -l | wc -l

Cette méthode a plusieurs inconvénients :

  • Elle va compter le nombre de lignes en sortie du ls (grâce à wc -l) et donc potentiellement les informations complémentaires (comme la taille totale des fichiers)
  • Elle prend indisctinctement les fichiers comme les sous-répertoires
  • Elle ne descend pas dans les sous-répertoires

 

Comment faire ?

La clé est de passer par la commande find qui va de plus nous permettre une plus grande granularité. On conserve wc -l pour compter le nombre d'éléments et on ajoute un tout petit peu de awk pour afficher cela proprement et simplement.

 

Nombre de fichiers dans une arborescence (dossier et tous ses sous-dossiers)

​find /home/toto -type f | wc -l | awk '{print $1}'

 

Nombre de fichiers dans un dossier (sans descendre dans ses sous-dossiers)

​find /home/toto -maxdepth 1 -type f | wc -l | awk '{print $1}'
 

 

Partager cet article

Repost 0
Pour être informé des derniers articles, inscrivez vous :