GNU/Linux >> Tutoriels Linux >  >> Linux

Compter le nombre de fichiers dans un répertoire sous Linux

Je suppose que vous connaissez la commande wc pour compter le nombre de lignes. Nous pouvons utiliser la même commande wc avec la commande ls pour compter le nombre de fichiers dans un répertoire.

Cette tâche semble simple mais pourrait bientôt devenir légèrement complexe en fonction de votre besoin et de votre définition des fichiers de comptage. Avant de vous confondre davantage, voyons différents cas d'utilisation du comptage du nombre de fichiers sous Linux.

Compter le nombre de fichiers dans le répertoire sous Linux

Permettez-moi d'abord de vous montrer le contenu du répertoire de test que je vais utiliser dans ce tutoriel :

[email protected]:~/tutorials$ ls -la
total 64
drwxr-xr-x 4 abhishek abhishek 4096 Apr 29 17:53 .
drwxr-xr-x 55 abhishek abhishek 4096 Apr 29 15:50 ..
-rwxr–r– 1 abhishek abhishek 456 Mar 6 16:21 agatha.txt
-rw-r–r– 1 abhishek abhishek 0 Apr 16 19:53 .a.t
-rwxr–r– 1 abhishek abhishek 140 Mar 22 16:41 bash_script.sh
-rw-rw-r– 1 abhishek abhishek 95 Feb 11 13:12 cpluplus.cpp
-rw-r–r– 1 abhishek abhishek 1778 Apr 29 16:16 my_zip_folder.zip
drwxr-xr-x 4 abhishek abhishek 4096 Apr 19 19:07 newdir
-rw-r–r– 1 abhishek abhishek 163 Apr 13 15:07 prog.py
-rw-r–r– 1 abhishek abhishek 19183 Mar 18 18:46 services
-rw-r–r– 1 abhishek abhishek 356 Dec 11 21:35 sherlock.txt
-rwxrw-r– 1 abhishek abhishek 72 Jan 21 15:44 sleep.sh
drwxr-xr-x 3 abhishek abhishek 4096 Jan 4 20:10 target

Vous pouvez voir qu'il contient 9 fichiers (dont un fichier caché) et 2 sous-répertoires dans ce répertoire. Mais vous n'avez pas à le faire manuellement. Comptons le nombre de fichiers utilisant les commandes Linux.

Compter le nombre de fichiers et répertoires (sans fichiers cachés)

Vous pouvez simplement exécuter la combinaison de la commande ls et wc et elle affichera le nombre de fichiers :

ls | wc -l

Voici le résultat :

[email protected]:~/tutorials$ ls | wc -l
10

Il y a un problème avec cette commande. Il compte tous les fichiers et répertoires dans les répertoires actuels. Mais il ne voit pas les fichiers cachés (les fichiers dont le nom commence par un point).

C'est la raison pour laquelle la commande ci-dessus m'a montré un décompte de 10 fichiers au lieu de 11 (9 fichiers et 2 répertoires).

Compter le nombre de fichiers et de répertoires, y compris les fichiers cachés

Vous savez probablement déjà que l'option -a de la commande ls affiche les fichiers cachés. Mais si vous utilisez la commande ls -a, elle affiche également le fichier . (répertoire actuel) et .. (répertoire parent). C'est pourquoi vous devez utiliser l'option -A qui affiche les fichiers cachés à l'exception des fichiers . et .. répertoires.

ls -A | wc -l

Cela vous donnera le nombre correct de fichiers et de répertoires dans le répertoire actuel. Jetez un œil à la sortie qui affiche un nombre de 11 (9 fichiers et 2 répertoires) :

[email protected]:~/tutorials$ ls -A | wc -l
11

Vous pouvez également utiliser cette commande pour obtenir le même résultat :

ls -1A | wc -l

Notez que l'option utilisée est 1 (un) et non l (L). L'utilisation de l'option l (L) affiche une ligne supplémentaire au début de la sortie (voir 'total 64' dans la sortie du répertoire au début de l'article). L'utilisation de 1 (un) répertorie un contenu par ligne à l'exclusion de la ligne supplémentaire. Cela donne un résultat plus précis.

Compter le nombre de fichiers et de répertoires, y compris les sous-répertoires

Ce que vous avez vu jusqu'à présent est le nombre de fichiers et de répertoires dans le répertoire actuel uniquement. Il ne prend pas en compte les fichiers des sous-répertoires.

Si vous souhaitez compter le nombre de fichiers et de répertoires dans tous les sous-répertoires, vous pouvez utiliser la commande tree.

tree -a

Cette commande affiche la structure du répertoire, puis affiche le résumé au bas de la sortie.

[email protected]:~/tutorials$ tree -a
.
├── agatha.txt
├── .a.t
├── bash_script.sh
├── cpluplus.cpp
├── my_zip_folder.zip
├── newdir
│   ├── new_dir
│   │   ├── c.xyz
│   │   ├── myzip1.zip
│   │   └── myzip2.zip
│   └── test_dir
│   ├── c.xyz
│   ├── myzip1.zip
│   └── myzip2.zip
├── prog.py
├── services
├── sherlock.txt
├── sleep.sh
└── target
├── agatha.txt
├── file1.txt
└── past
├── file1.txt
├── file2.txt
└── source1
└── source2
└── file1.txt
7 directories, 19 files

Comme vous pouvez le voir dans la sortie, cela montre qu'il y a 7 répertoires et 20 fichiers au total. L'avantage de ce résultat est qu'il ne compte pas les répertoires dans le nombre de fichiers.

Compter uniquement les fichiers, pas les répertoires

Jusqu'à présent, toutes les solutions que nous avons vues pour compter le nombre de fichiers tiennent également compte des répertoires. Les répertoires sont essentiellement des fichiers, mais que se passe-t-il si vous voulez compter uniquement le nombre de fichiers, pas les répertoires ? Vous pouvez utiliser la merveilleuse commande de recherche.

Vous pouvez exécuter cette commande :

find . -type f | wc -l

La commande ci-dessus a recherché tous les fichiers (type f) dans le répertoire courant et ses sous-répertoires.

[email protected]:~/tutorials$ find . -type f | wc -l
20

Compter uniquement les fichiers, pas les répertoires et uniquement dans le répertoire courant, pas les sous-répertoires

C'est super! Mais que se passe-t-il si vous voulez compter le nombre de fichiers dans le répertoire courant en excluant uniquement les fichiers des sous-répertoires ? Vous pouvez utiliser la même commande que ci-dessus mais avec une légère différence.

Tout ce que vous avez à faire est d'ajouter la "profondeur" de votre trouvaille. Si vous le définissez sur 1, il n'entrera pas dans les sous-répertoires.

find . -maxdepth 1 -type f | wc -l

Voici maintenant le résultat :

[email protected]:~/tutorials$ find . -maxdepth 1 -type f | wc -l
9

En fin de compte…

Sous Linux, vous pouvez avoir plusieurs façons d'atteindre le même objectif. Je suis presque sûr qu'il peut y avoir plusieurs autres méthodes pour compter le nombre de fichiers sous Linux. Si vous utilisez une autre commande, pourquoi ne pas la partager avec nous ?

J'espère que ce tutoriel Linux vous a aidé à apprendre quelques choses. Restez en contact pour plus de conseils Linux.


Linux
  1. Comment compter le nombre de fichiers dans un répertoire et supprimer les plus anciens si le nombre dépasse 5 ?

  2. Nombre maximum de fichiers/répertoires sous Linux ?

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

  4. linux tree command limite le nombre de fichiers affichés dans chaque répertoire

  5. Un moyen rapide de compter les fichiers de manière récursive sous Linux

Comment copier un grand nombre de fichiers sous Linux

Comment lister les fichiers de manière récursive sous Linux

Comment compter le nombre de fichiers et de sous-répertoires dans un répertoire

Comment compter les fichiers dans le répertoire sous Linux

Comment compter le nombre de fichiers dans un répertoire sous Linux

Linux :rechercher le nombre de fichiers dans un répertoire et des sous-répertoires