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

How Get Size Directory Linux



Connaître la taille d'un répertoire sous Linux n'est pas aussi simple qu'il y paraît. La commande ls -s listera les fichiers et sous-répertoires avec leurs tailles. Cependant, les tailles (environ 4096 octets) données pour les répertoires ne correspondent pas à l'utilisation du disque. La taille vue pour un répertoire est la taille des métadonnées du répertoire.

Les métadonnées sont des données sur des données. La taille apparente est la taille des données qui compte pour l'utilisateur ordinaire de l'ordinateur. Le contenu (texte) des lettres, images, vidéos, etc. de l'utilisateur constitue la taille apparente. Ces données ne sont pas conservées arbitrairement dans l'ordinateur. Les données de taille apparente doivent être conservées de manière contrôlée. Il doit être identifiable. Il doit être complet. Il y a d'autres exigences pour cela. Certaines données supplémentaires sont nécessaires pour répondre à ces exigences supplémentaires, et ces données supplémentaires sont les métadonnées.







N'oubliez pas qu'il n'y a qu'un seul répertoire dans un volume. Les autres sont des sous-répertoires. Le répertoire racine donne naissance à des sous-répertoires, qui donnent lieu à d'autres sous-répertoires descendants. Cependant, les sous-répertoires sont généralement simplement appelés répertoires. Et donc, il n'y a qu'une seule arborescence de répertoires.



Ainsi, ls -s n'est pas utile pour obtenir la taille d'un répertoire. Quelle commande est alors utile ? – Le commandement du. du signifie Utilisation du disque. Il imprime l'utilisation du disque du répertoire.



Cet article explique les différentes fonctionnalités de la commande du sous Linux, qui fournit au programmeur les différentes manières de connaître la taille des répertoires et de leurs sous-répertoires. Bash est le shell utilisé pour les exemples de code de cet article.





Contenu de l'article

du sans option ni argument

Le répertoire de travail actuel est le répertoire dans lequel l'utilisateur travaille actuellement. L'invite affiche normalement le répertoire de travail actuel. Tapez du sans aucune option ni argument, comme ceci :



du

puis appuyez sur la touche Entrée pour afficher l'utilisation du disque pour tous les sous-répertoires du répertoire de travail actuel. Il affichera ces informations pour la sous-arborescence du répertoire de travail courant. Un point à l'écran représente le répertoire de travail actuel.

Chaque chemin du sous-arbre est représenté dans une ligne, à l'affichage. Chaque ligne commence par la taille du répertoire (qui est le nom de famille dans le chemin). L'affichage peut être quelque chose comme :

8./dir1/dir2/dir3/dir4

12./dir1/dir2/dir3

16./dir1/dir2

vingt./dir1

Notez qu'il n'est pas clair si la taille est en octets ou en kilo-octets ou en mégaoctets ou en gigaoctets. Kilo-octets de symbole, K signifie 1024 octets ; Mégaoctets de symbole, M signifie 1 048 576 octets ; Gigaoctets de symbole, G signifie 1 073 741 824 octets. Pour que les multiples soient indiqués, il faut utiliser l'option -h (switch) comme suit :

du -h

L'affichage ressemblerait alors à ceci :

8.0K./dir1/dir2/dir3/dir4

12K./dir1/dir2/dir3

16K./dir1/dir2

20K./dir1

Lorsque l'option -h est utilisée, les tailles sont dites sous une forme lisible.

Remarque : avec l'option –all, la commande du donnera également l'utilisation du disque pour les fichiers ; cependant, l'utilisation du disque pour les fichiers ne sera pas abordée dans cet article.

Taille des autres répertoires

Un chemin absolu typique pour un volume Linux est le suivant :

/domicile/John/dire/dirDeux/dirTrois/dirQuatre

Le premier / est le répertoire racine. Ce répertoire a des sous-répertoires immédiats, y compris le répertoire personnel. Le répertoire personnel contient le répertoire de l'utilisateur. Si le nom de l'utilisateur est John, alors il peut nommer le répertoire de l'utilisateur, john. Le répertoire de l'utilisateur est identifié par ~. Ainsi, l'utilisateur peut utiliser la commande cd ~ pour accéder à son répertoire depuis n'importe quel répertoire. dirOne est un répertoire créé par l'utilisateur. L'utilisateur peut également créer d'autres répertoires à ce niveau. dirTwo, dirThree et dirFour sont des sous-répertoires de leurs répertoires précédents, créés par l'utilisateur.

L'utilisateur peut connaître la taille de n'importe quel autre répertoire et de ses sous-répertoires (sous-arborescence) à partir de n'importe quel répertoire, en contournant le chemin absolu comme argument. Par exemple, si l'utilisation du disque est nécessaire,

/domicile/John/dire/dirDeux

alors la commande serait :

du -h /domicile/John/dire/dirDeux

ou

du -h~/dire/dirDeux

où ~ représente le répertoire de l'utilisateur.

Pour utiliser un chemin relatif, l'utilisateur doit déjà se trouver dans le répertoire parent correspondant. Par exemple, si l'invite s'affiche,

John@hôte :~/dire $

ce qui signifie que l'utilisateur se trouve dans le répertoire /home/john/dirOne, la commande suivante donnera le même résultat que la commande ci-dessus :

du -hdirDeux

Les chemins seraient encore relatifs. Pour afficher les mêmes informations pour le répertoire courant, n'utilisez aucun argument ou utilisez le point.

Ce schéma peut être utilisé pour obtenir la taille d'un seul répertoire, le dernier d'un chemin (précédé du chemin). Il est possible d'obtenir la taille d'un répertoire au milieu d'un chemin – voir exclude=PATTERN ci-dessous.

Total

Une taille totale de tous les répertoires impliqués peut être produite. Pour la situation ci-dessus, la commande serait :

du -h --le total

taille apparente

La taille apparente est généralement inférieure à l'utilisation du disque. Cependant, dans certaines situations, la taille apparente est supérieure à l'utilisation du disque ; raison - voir plus tard. La commande pour obtenir les tailles apparentes pour le chemin relatif ci-dessus serait :

du -h --apparent-tailledirDeux

Profondeur maximale

Avec –max-depth=0, du n'affiche que la taille du répertoire de travail courant ; avec du –max-depth=1, du imprime la taille du répertoire de travail courant et les tailles de tous ses sous-répertoires de premier niveau ; avec –max-depth=2, du imprime la taille du répertoire de travail courant et les tailles de tous ses sous-répertoires de premier niveau, et de tous ses sous-répertoires de second niveau ; avec –max-depth=3, du imprime la taille du répertoire de travail courant et de tous ses sous-répertoires de premier niveau, et de tous ses sous-répertoires de deuxième niveau, et de tous ses sous-répertoires de troisième niveau ; cela continue avec une valeur croissante de max-depth. Un exemple de son utilisation est :

du -h --profondeur max=2

La commande sudo

L'un des répertoires avec ses propres sous-répertoires dans le répertoire racine est var. Si l'utilisateur tape

du -h /

et appuie sur Entrée, il se rendra compte que l'autorisation est refusée pour certains répertoires. C'est-à-dire qu'il ne peut pas connaître la taille de certains répertoires. L'autorisation est refusée car l'utilisateur n'est pas le superutilisateur. Le superutilisateur a le privilège de voir les tailles (utilisation du disque) de ces répertoires. Ainsi, pour que l'utilisateur acquière ce privilège, il doit utiliser la commande sudo comme suit :

sudo du -h /

Si le shell demande à l'utilisateur son mot de passe, l'utilisateur doit saisir le mot de passe et appuyer sur Entrée. Avec la commande sudo, l'utilisateur ordinaire (programmeur) peut voir la taille de tous les répertoires du répertoire var et des répertoires similaires.

Exclure les entrées par taille

L'option –threshold=SIZE ne permettra pas de répertorier les répertoires dont la taille est inférieure à SIZE. Pour le chemin,

/domicile/John/dire/dirDeux/dirTrois/dirQuatre

avec l'invite à[email protégé]:~$, alors

du -h --seuil= 12K dirOne

où 12 Ko signifie 12 kilo-octets, n'affichera la ligne pour aucun répertoire dont l'utilisation du disque est inférieure à 12 Ko.

–exclude=MOTIF

Cette option et cette valeur peuvent omettre les lignes de répertoire que l'utilisateur ne veut pas dans la liste.

Pour omettre la ligne du dernier répertoire, dirQuatre du chemin

/domicile/John/dire/dirDeux/dirTrois/dirQuatre

la commande doit être :

du -h --exclure= dire/dirDeux/dirTrois/dirQuatre dirUn

Le résultat sera quelque chose comme,

4.0K dirOne/dirDeux/dirTrois

8.0K dirOne/dirDeux

12K dirOne

Remarque : les tailles n'incluent pas la taille du répertoire de dernier niveau (dirFour) du chemin.

Pour n'avoir que les tailles des répertoires de profondeur supérieure et de leurs sous-arbres, n'ayez pas les répertoires de profondeur inférieure dans l'option. Donc avec la commande,

du -h --exclure= dire/dirDeux/dirTrois dirUn

la sortie sera quelque chose comme,

4.0K dirOne/dirDeux

8K dirOne

Remarque : les tailles ont exclu les tailles des répertoires du levier inférieur de l'arbre.

Considérez encore, le lien absolu,

/domicile/John/dire/dirDeux/dirTrois/dirQuatre

La commande suivante obtiendra l'utilisation du disque du seul répertoire dirTwo, qui est un répertoire dans le chemin. La commande est :

du -h --exclure=/domicile/John/dire/dirDeux/ * /domicile/John/dire/dirDeux

L'argument a tous les répertoires précédents jusqu'à celui en question. La valeur d'exclusion a tous les répertoires précédents, se terminant par *, juste après celui en question. * signifie tous les sous-répertoires à ce niveau (et leurs sous-arborescences). Le résultat sera quelque chose comme,

5.0K/domicile/John/dire/dirDeux

Conclusion

Essayer de connaître la taille d'un répertoire avec la commande ls -s est trompeur. Avec lui, seules les métadonnées de l'annuaire sont obtenues. Pour connaître l'utilisation du disque d'un répertoire, la commande du doit être utilisée. Lorsqu'il est utilisé avec l'option -h, les tailles des répertoires sont lisibles. La taille apparente peut être obtenue en utilisant l'option taille apparente. Sans option ni argument, la commande du affiche simplement les tailles de tous les sous-répertoires du répertoire courant, y compris celui du répertoire courant. L'argument de du est le chemin, qui peut commencer à la racine. Les options et certaines de leurs valeurs décident exactement quels répertoires sont adressés. La commande sudo accorde par défaut à l'utilisateur ordinaire des privilèges de superutilisateur.