Comment compter les fichiers et répertoires sous Linux : Guide du débutant
Savoir comment compter efficacement les fichiers et les répertoires sous Linux est une compétence précieuse pour les administrateurs système et tous ceux qui travaillent avec de grandes quantités de données. Dans ce guide, je vais partager comment j'utilise des outils simples en ligne de commande, tels que find, wc et ls, pour trouver rapidement le nombre exact de fichiers et de dossiers sous les systèmes d'exploitation Linux et Unix.
Commençons !
Compter les fichiers dans un répertoire en utilisant la commande find
Pour compter tous les fichiers dans un chemin donné, y compris tous ses sous-répertoires, vous pouvez utiliser la commande find combinée avec wc -l dans votre terminal Linux. Voici comment vous pouvez le faire :
1. Ouvrez votre terminal.
2. Utilisez la commande suivante, en remplaçant /path/to/your/directory par le chemin réel de votre répertoire :
$ find /path/to/your/directory -type f | wc -lDécomposons la commande ci-dessus et voyons ce que fait chaque partie de la commande :
find /path/to/your/directorydémarre la recherche dans le répertoire spécifié.-type findique àfindde rechercher uniquement des fichiers (et non des répertoires).- Le
|(pipe) transmet la sortie de la commandefindà la commande suivante. wc -lcompte le nombre de lignes dans l'entrée qu'il reçoit, ce qui, en raison de l'utilisation defind, correspond au nombre de fichiers.
Cela affichera le nombre total de fichiers dans le répertoire spécifié et tous ses sous-répertoires.
Exemple :
Pour compter le nombre de fichiers dans le répertoire Téléchargements, la commande serait :
$ find ~/Downloads -type f | wc -l
5968Comme vous pouvez le voir, il y a 5968 fichiers dans le répertoire Téléchargements.
Compter les répertoires en utilisant la commande find
Dans l'exemple précédent, nous avons compté le nombre de fichiers dans l'emplacement donné. Qu'en est-il des répertoires ? Pouvons-nous utiliser la commande find pour les sous-répertoires dans un répertoire spécifique ?
Oui, nous pouvons utiliser la ligne de commande pour trouver le nombre de sous-répertoires dans un répertoire donné sous Linux. Vous utiliserez à nouveau la commande find, mais cette fois-ci vous chercherez des répertoires (-type d) au lieu de fichiers.
$ find /path/to/the/directory -type d | wc -lIl suffit de remplacer /path/to/the/directory par le chemin réel. Voici la répartition de la commande :
find /path/to/the/directorycommence la recherche dans le répertoire spécifié.-type dindique àfindde ne rechercher que des répertoires.- Le
|(pipe) transmet la sortie de la commandefindà la commande suivante. wc -lcompte le nombre de lignes dans l'entrée qu'il reçoit, ce qui correspond au nombre de répertoires trouvés parfind.
Cette commande compte tous les répertoires y compris le répertoire racine de la recherche.
Exemple :
$ find ~/Downloads -type d | wc -l
563Comme vous pouvez le voir, il y a 563 sous-répertoires dans le répertoire ~/Downloads, y compris lui-même.
Si vous voulez exclure le répertoire racine du compte, il suffit de soustraire 1 du résultat.
Compter les fichiers et répertoires avec la commande find en utilisant les options maxdepth et mindepth
Lors du comptage des fichiers et des répertoires avec la commande find sous Linux, utiliser efficacement les options maxdepth et mindepth peut vous aider à cibler précisément votre recherche et à éviter de compter des éléments inutiles.
Voici comment vous pouvez utiliser ces options à des fins de comptage.
Comptage des fichiers dans une plage de profondeur spécifique
Pour compter les fichiers dans une plage spécifique de profondeurs de répertoire, vous pouvez spécifier à la fois mindepth et maxdepth. Cela est utile lorsque vous souhaitez exclure les fichiers de niveau supérieur ou plonger dans des niveaux spécifiques de sous-répertoires.
Exemple : Compter les fichiers uniquement au deuxième niveau des sous-répertoires :
$ find /path/to/directory -mindepth 2 -maxdepth 2 -type f | wc -lCette commande comptera les fichiers qui se trouvent exactement à deux niveaux de répertoires à partir du point de départ.
Compter les répertoires à une profondeur spécifique
De même, pour compter les répertoires à une profondeur spécifique, vous pouvez ajuster les options mindepth et maxdepth en conséquence.
Exemple : Comptez les répertoires qui ont exactement trois niveaux :
$ find /path/to/directory -mindepth 3 -maxdepth 3 -type d | wc -lExclure le répertoire de niveau supérieur du décompte
Si vous comptez des éléments mais souhaitez exclure le répertoire de niveau supérieur lui-même ou tout élément dans le répertoire de niveau supérieur, vous pouvez utiliser la commande exemple suivante.
Exemple : Comptez tous les fichiers en excluant le répertoire de niveau supérieur :
$ find /path/to/directory -mindepth 1 -type f | wc -lExemple : Compter les sous-répertoires en excluant le niveau supérieur :
$ find /path/to/directory -mindepth 1 -type d | wc -lCompter tous les fichiers ou répertoires jusqu'à une certaine profondeur
Si vous voulez inclure tout jusqu'à une certaine profondeur, vous utiliseriez maxdepth sans spécifier mindepth.
Exemple : Compter tous les fichiers jusqu'au deuxième niveau de sous-répertoires inclus :
$ find /path/to/directory -maxdepth 2 -type f | wc -lConseils pour une utilisation efficace
- Soyez clair sur votre cible : Comprenez si vous êtes intéressé par les fichiers, les répertoires, ou les deux, et ajustez l'option
-type(fpour les fichiers,dpour les répertoires) en conséquence. - Considérez les performances : Rechercher dans des structures de répertoires très profondes peut prendre beaucoup de temps. Si vous ne vous intéressez qu'à une plage de profondeur spécifique, définir
maxdepthetmindepthde manière appropriée peut accélérer votre recherche. - Vérifiez vos hypothèses de profondeur : Avant d'exécuter une opération de comptage importante, testez votre commande sur un petit sous-ensemble de votre répertoire cible pour vous assurer que vous comptez à la profondeur correcte.
Vous pouvez compter les fichiers et dossiers sous Linux de manière plus précise et rapide en ajustant la profondeur à laquelle vous souhaitez rechercher à l'aide de « mindepth » et « maxdepth » selon ce dont vous avez besoin.
Compter les répertoires et leurs sous-répertoires en utilisant la commande ls
La combinaison ls, grep et wc est une autre méthode pour compter le nombre de répertoires dans un répertoire spécifique, y compris tous ses sous-répertoires.
Accédez au répertoire dans lequel vous souhaitez compter le nombre de sous-répertoires :
$ cd MyFiles/Et exécutez la commande suivante :
$ ls -lR | grep ^d | wc -l
488Comme vous le voyez dans la sortie ci-dessus, le nombre total de sous-répertoires dans le ~/MyFiles est de 488.
Voici une brève explication de la façon dont cette commande fonctionne :
- ls -lR : Cette commande liste tous les fichiers et répertoires de manière récursive dans le répertoire courant et ses sous-répertoires, affichant des informations détaillées sur chaque fichier et répertoire.
grep ^d: Cette commande filtre la sortie de la commandels -lR, en sélectionnant uniquement les lignes qui commencent par « d », ce qui indique des répertoires.wc -l: Cette commande compte le nombre de lignes dans la sortie générée par la commandegrep ^d.
Donc, dans l'ensemble, la commande liste tous les répertoires et sous-répertoires dans le répertoire actuel et ses sous-répertoires, puis compte le nombre de répertoires et affiche ce nombre. Essentiellement, elle vous indique combien de répertoires existent dans le répertoire actuel et ses sous-répertoires.
C'est une méthode pratique, surtout lorsque vous travaillez déjà dans un répertoire spécifique et que vous souhaitez un comptage rapide des répertoires.
Pourquoi les commandes find et ls affichent-elles un nombre différent lors du comptage des répertoires ?
Les commandes ls -lR | grep ^d | wc -l et find /path/to/directory -type d | wc -l comptent toutes deux les répertoires, mais elles le font de manière différente, ce qui peut entraîner des résultats différents.
Voici pourquoi le nombre diffère :
1. Répertoires cachés :
commande find: Par défaut,findinclut les répertoires cachés (ceux commençant par un.) dans sa recherche et son comptage.ls -lRcommande : Cette combinaison, sans options supplémentaires, ne liste pas les répertoires cachés sauf indication explicite (en utilisant l'option-aavecls).
2. Nombre de répertoires racine :
- Commande
find: Le nombre obtenu à partir defind /path/to/directory -type d | wc -linclut le répertoire racine spécifié dans le total. ls -lR | grep ^d | wc -lcommande : Cette méthode compte généralement uniquement les sous-répertoires et non le répertoire racine à partir duquel la commande est exécutée, en fonction de la manière dont la sortie est interprétée pargrep.
Conclusion
Que vous soyez en train de nettoyer un disque dur externe, ou simplement curieux du contenu d'un dossier, être capable de compter rapidement le nombre de fichiers et de répertoires dans un emplacement spécifique est une compétence essentielle.
En utilisant les commandes appropriées comme find, ls et wc, vous pouvez obtenir efficacement le nombre exact de fichiers et de répertoires dans un emplacement spécifique ou même dans l'ensemble de votre système Linux.
Lecture connexe :
- Comment utiliser les options maxdepth et mindepth avec la commande find de Linux
