GNU/Linux >> Tutoriels Linux >  >> Linux

Vérification de la taille du répertoire avec la commande du sous Linux

Connaître la taille d'un fichier est facile sous Linux. Tout ce que vous avez à faire est d'utiliser l'option -l et -h avec la commande ls et il vous montrera la taille du fichier ainsi que les autorisations de fichier et les horodatages de fichier. Voici un exemple de sortie :

ls -lh tutorials
total 56K
-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  163 Apr 13 15:07 prog.py
-rw-r--r-- 1 abhishek abhishek  19K 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 4.0K Jan  4 20:10 target
drwxr-xr-x 2 abhishek abhishek 4.0K Apr 16 18:27 test_dir
-rw-rw-r-- 1 abhishek abhishek   55 Mar 11 16:28 text-file.txt

Vous remarquerez quelque chose d'étrange. La commande ls affiche la taille de tous les répertoires à 4 Ko. Cela ne peut pas être correct, n'est-ce pas ? Bien sûr que non.

La taille d'un dossier ou d'un répertoire sous Linux peut être trouvée à l'aide de la commande du. du représente ici l'utilisation du disque. J'expliquerai la logique derrière la taille 4.0K pour les répertoires plus loin dans ce tutoriel. Pour le moment, concentrons-nous sur l'obtention de la taille du répertoire.

Si vous souhaitez vérifier la taille du répertoire sous Linux, vous pouvez utiliser cette commande :

du -sh path_to_directory

Cela vous donnera la taille totale dudit répertoire dans un format lisible par l'homme, c'est-à-dire Ko, Mo ou Go.

Utilisation de la commande du pour obtenir la taille du répertoire sous Linux

Je vais vous montrer divers exemples de la commande du que vous pouvez utiliser pour vérifier la taille du répertoire et l'utilisation du disque.

La syntaxe de la commande du est assez simple.

du [option] path_to_file_or_directory

Voyons comment utiliser la commande du pour obtenir les informations sur la taille des fichiers et des répertoires sous Linux.

Voici la structure du répertoire "tutoriels" que je vais utiliser dans ce tutoriel :

tree tutorials
.
├── agatha.txt
├── bash_script.sh
├── cpluplus.cpp
├── prog.py
├── services
├── sherlock.txt
├── sleep.sh
├── target
│   ├── agatha.txt
│   ├── file1.txt
│   └── past
│       ├── file1.txt
│       ├── file2.txt
│       └── source1
│           └── source2
│               └── file1.txt
├── test_dir
│   ├── c.xyz
│   ├── myzip1.zip
│   └── myzip2.zip
└── text-file.txt
5 directories, 16 files

Maintenant, si j'exécute la commande du dans le répertoire "tutoriels", elle affichera les tailles de tous les sous-répertoires, puis additionnera les tailles de tous les sous-répertoires et des fichiers en bas.

du tutorials

Il s'agit de la sortie du répertoire des didacticiels.

8 tutorials/target/past/source1/source2
12 tutorials/target/past/source1
24 tutorials/target/past
36 tutorials/target
12 tutorials/test_dir
100 tutorials

Afficher la taille du disque dans un format lisible par l'homme

Maintenant, le problème avec la sortie ci-dessus de la commande du est que vous ne savez pas si le 100 est de 100 Ko ou 100 Mo ou 100 Go. Ne vous inquiétez pas, vous pouvez modifier ce comportement et afficher la taille du répertoire dans un format lisible par l'homme avec l'option -h.

du -h tutorials

Voici la sortie beaucoup plus facile à lire maintenant :

8.0K tutorials/target/past/source1/source2
12K tutorials/target/past/source1
24K tutorials/target/past
36K tutorials/target
12K tutorials/test_dir
100K tutorials

Vous pouvez utiliser l'option -m pour MB et l'option -k pour KB au lieu de -h. Mais même si la taille est inférieure à 1 Mo, elle affichera toujours la taille de 1 Mo. C'est pourquoi l'utilisation de l'option -h est toujours une meilleure option.

Afficher également la taille des fichiers

Avez-vous remarqué que le répertoire des tutoriels contient plusieurs fichiers mais qu'ils n'apparaissent pas dans la sortie de la commande du ? C'est parce que bien que la taille du fichier soit comptée dans la somme totale de la taille du répertoire, les fichiers ne sont pas affichés par défaut.

Pour afficher la taille des fichiers avec les répertoires, vous pouvez utiliser l'option -a. Il serait préférable de le combiner avec l'option -h pour obtenir les tailles dans un format lisible par l'homme.

du -ah tutorials

Maintenant, la sortie affichera les fichiers avec les répertoires :

4.0K tutorials/cpluplus.cpp
4.0K tutorials/prog.py
20K tutorials/services
4.0K tutorials/text-file.txt
4.0K tutorials/bash_script.sh
4.0K tutorials/target/file1.txt
4.0K tutorials/target/past/file2.txt
4.0K tutorials/target/past/file1.txt
4.0K tutorials/target/past/source1/source2/file1.txt
8.0K tutorials/target/past/source1/source2
12K tutorials/target/past/source1
24K tutorials/target/past
4.0K tutorials/target/agatha.txt
36K tutorials/target
4.0K tutorials/sherlock.txt
4.0K tutorials/test_dir/myzip1.zip
4.0K tutorials/test_dir/myzip2.zip
0 tutorials/test_dir/c.xyz
12K tutorials/test_dir
4.0K tutorials/sleep.sh
4.0K tutorials/agatha.txt
100K tutorials

Astuce bonus :résoudre le mystère de 4 Ko

Notez que les tailles peuvent sembler avoir été arrondies. Je veux dire que toutes les tailles sont dans le multiple de 4K. En effet, hormis les fichiers vides, tous les fichiers ont une taille d'au moins 4 Ko. Est-ce une coïncidence ? Pas vraiment.

Même si le texte du fichier est en octets, la taille minimale du fichier est de 4K car c'est la taille de bloc minimale du système de fichiers. Quelle que soit la taille du texte sur le fichier, il lui sera alloué au moins un bloc de mémoire de 4 Ko sur le disque.

Et puisque les blocs de mémoire ont une taille de 4 Ko, les tailles que vous verrez seront toujours dans le multiple de 4 Ko.

Maintenant, vous savez probablement déjà que tout est fichier sous UNIX/Linux. Un répertoire est essentiellement un fichier contenant des informations sur l'emplacement de tous les fichiers qu'il "contient".

Ainsi, lorsque vous utilisez la commande ls, elle traite le répertoire comme un fichier et affiche sa taille qui est d'un bloc de mémoire et donc la taille affichée est de 4 Ko.

Afficher uniquement la taille totale du répertoire sous Linux

Si vous trouvez la sortie de la commande du trop détaillée et que vous souhaitez voir uniquement la taille totale du répertoire dans un format lisible par l'homme, vous pouvez utiliser l'option sum -s.

du -sh tutorials

Maintenant, la sortie sera juste une ligne montrant la taille totale du répertoire :

100K tutorials

Afficher l'utilisation du disque par plusieurs répertoires

Ce n'est pas que vous êtes limité à vérifier la taille d'un seul répertoire à la fois. Vous pouvez spécifier plusieurs répertoires dans la commande du.

Par exemple, je vais utiliser les options -sh pour afficher la taille totale de deux répertoires ici.

du -sh tutorials/target/ tutorials/test_dir

La sortie affichera la taille des deux répertoires individuellement :

36K tutorials/target/
12K tutorials/test_dir

Afficher le total général de toutes les tailles de répertoires

Dans l'exemple ci-dessus, vous avez vu les tailles totales des deux répertoires individuellement. Vous pouvez utiliser l'option -c pour afficher un total général pour la somme de tous les répertoires dans la sortie.

du -csh tutorials/target/ tutorials/test_dir

Comme vous pouvez le voir dans le résultat, il résume les tailles et vous donne le total général :

36K tutorials/target/
12K tutorials/test_dir
48K total

Ne pas afficher les tailles des sous-répertoires

Que faire si vous souhaitez vérifier la taille de tous les répertoires du dossier actuel ? Par défaut, la commande ira dans les sous-répertoires de tous les répertoires et la sortie devient difficile à comprendre, spécialement si vous avez trop de répertoires imbriqués.

Ce que vous pouvez faire est de définir le niveau de profondeur à vérifier tout en affichant les tailles des sous-répertoires.

Ainsi, si vous souhaitez voir la taille des répertoires dans le dossier actuel, vous pouvez définir la profondeur sur 1 comme ceci :

du -h --max-depth=1 tutorials

Maintenant, la sortie affichera les sous-répertoires uniquement dans le répertoire courant. Cela n'ira pas plus loin que cela.

36K tutorials/target
12K tutorials/test_dir
100K tutorials

Si vous ne vous souvenez pas de –max-depth, vous pouvez utiliser son indicateur court -d :

du -h -d1 tutorials

Exclure certains types de fichiers lors du calcul de la taille du disque

La commande du vous donne la possibilité d'exclure certains types de fichiers. Vous pouvez utiliser regex avec l'option –exclude.

Par exemple, pour calculer la somme de tous les fichiers à l'exception des fichiers avec l'extension txt, cette commande peut être utilisée :

du -h --exclude="*.txt" tutorials

Et maintenant, si vous voyez la sortie, la taille totale du répertoire aurait été réduite :

4.0K tutorials/target/past/source1/source2
8.0K tutorials/target/past/source1
12K tutorials/target/past
16K tutorials/target
12K tutorials/test_dir
68K tutorials

Astuce bonus :trouver le plus grand sous-répertoire

Vous pouvez combiner la sortie de la commande du avec la commande sort pour trier les répertoires par ordre de taille.

du -h --max-depth=1 tutorials | sort -rh

Cela affichera les répertoires dans l'ordre inverse de leur taille, c'est-à-dire le plus grand répertoire en haut.

100K tutorials
36K tutorials/target
12K tutorials/test_dir

Bien sûr, celui du haut est le répertoire lui-même, mais le second vous donne le plus grand sous-répertoire.

Vous pouvez en outre combiner avec la commande head ou la commande tail pour obtenir le x plus grand fichier ou les plus petits fichiers/répertoires.

L'avez-vous trouvé utile ?

J'ai essayé d'expliquer toute l'utilisation essentielle de la commande du sous Linux. Mais comme toujours, il existe de nombreuses autres options disponibles pour la commande que vous pouvez trouver dans sa page de manuel. Si vous vouliez juste connaître la taille d'un répertoire sous Linux, ce tutoriel devrait vous donner suffisamment d'informations. Si vous souhaitez vérifier l'espace disque sous Linux, utilisez la commande df.

Vous avez aimé le tuto ? Cela vous a-t-il aidé ? Faites-moi savoir dans les commentaires. Si vous avez d'autres conseils intéressants sur du command, pourquoi ne pas les partager avec nous ?


Linux
  1. Comment obtenir la taille d'un répertoire sous Linux

  2. Commande Linux Tee avec exemples

  3. Commande JQ sous Linux avec exemples

  4. Commandes Linux les plus simples avec 10 exemples

  5. Commande de déplacement de répertoire Linux

Commande Echo sous Linux avec exemples

Commande Linux ip avec exemples

Commande Du sous Linux

15 Commande Linux ps avec exemples

Commande de CD Linux avec exemples

Commande mv sous Linux