GNU/Linux >> Tutoriels Linux >  >> Linux

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

Lors de la liste du contenu d'un répertoire à l'aide de ls commande, vous avez peut-être remarqué que la taille des répertoires est presque toujours de 4096 octets (4 Ko). C'est la taille de l'espace sur le disque qui est utilisée pour stocker les méta-informations du répertoire, pas ce qu'il contient.

La commande que vous voudrez utiliser pour obtenir la taille réelle d'un répertoire est du , qui est l'abréviation de "utilisation du disque".

Obtenir la taille d'un répertoire #

Le du La commande affiche la quantité d'espace fichier utilisée par les fichiers ou répertoires spécifiés. Si le chemin spécifié est un répertoire, du résume l'utilisation du disque de chaque sous-répertoire de ce répertoire. Si aucun chemin n'est spécifié, du rapporte l'utilisation du disque du répertoire de travail actuel.

Lorsqu'il est invoqué sans aucune option, du affiche l'utilisation du disque du répertoire donné et de chacun de ses sous-répertoires en octets.

En règle générale, vous souhaiterez afficher l'espace occupé par le répertoire dans un format lisible par l'homme. Par exemple, pour obtenir la taille totale de /var répertoire, vous exécuterez la commande suivante :

sudo du -sh /var

La sortie ressemblera à ceci :

85G	/var

Expliquons la commande et ses arguments :

  • La commande commence par sudo car la plupart des fichiers et répertoires à l'intérieur de /var répertoire appartiennent à l'utilisateur root et ne sont pas lisibles par les utilisateurs réguliers. Si vous omettez sudo le du la commande affichera "du :ne peut pas lire le répertoire".
  • s - Afficher uniquement la taille totale du répertoire spécifié, ne pas afficher les totaux de taille de fichier pour les sous-répertoires.
  • h - Tailles d'impression dans un format lisible par l'homme (h ).
  • /var - Le chemin d'accès au répertoire dont vous souhaitez obtenir la taille.

Que faire si vous souhaitez afficher l'utilisation du disque des sous-répertoires de premier niveau ? Vous avez deux options. La première consiste à utiliser le symbole astérisque (* ) comme indiqué ci-dessous, ce qui signifie "faire correspondre tout ce qui ne commence pas par un point (. ) ». Le -c l'option indique du pour imprimer un total général de toutes les tailles :

sudo du -shc /var/*
24K	/var/db
4.0K	/var/empty
4.0K	/var/games
77G	/var/lib
4.0K	/var/local
0	/var/lock
3.3G	/var/log
0	/var/mail
4.0K	/var/opt
0	/var/run
196K	/var/spool
28K	/var/tmp
85G	total

Une autre façon d'obtenir un rapport sur l'utilisation du disque des sous-répertoires de premier niveau consiste à utiliser le --max-depth choix :

sudo du -h --max-depth=1 /var
77G	  /var/lib
24K	  /var/db
4.0K	/var/empty
4.0K	/var/local
4.0K	/var/opt
196K	/var/spool
4.0K	/var/games
3.3G	/var/log
5.0G	/var/cache
28K	/var/tmp
85G	/var
85G	total

Par défaut, le du La commande affiche l'espace disque utilisé par le répertoire ou le fichier. Pour trouver la taille apparente d'un répertoire, utilisez le --apparent-size option. La "taille apparente" d'un fichier correspond à la quantité de données qu'il contient réellement.

sudo du -sh --apparent-size /var

Lorsque vous transférez un répertoire via SCP, Rsync. ou SFTP, la quantité de données transférées sur le réseau correspond à la taille apparente des fichiers. C'est pourquoi la taille de l'espace sur le disque utilisé sur la source lorsqu'il est affiché avec du (sans --apparent-size ) n'est pas la même que la taille sur la cible.

Le du La commande peut également être combinée avec d'autres commandes avec des canaux.

Par exemple, pour imprimer les 5 plus grands répertoires dans le /var répertoire, vous dirigeriez la sortie de du au sort commande pour trier les répertoires par leur taille, puis diriger la sortie vers le head commande qui n'imprimera que les 5 premiers répertoires :

sudo du -h /var/ | sort -rh | head -5
85G	/var/
77G	/var/lib
75G	/var/lib/libvirt/images
75G	/var/lib/libvirt
5.0G	/var/cache/pacman/pkg

Conclusion #

Sous Linux, vous pouvez obtenir la taille d'un répertoire en utilisant le du commande.

Si vous avez des questions ou des remarques, laissez un commentaire ci-dessous.


Linux
  1. Comment trouver le fichier le plus ancien dans une arborescence de répertoires sous Linux

  2. Comment obtenir la taille du répertoire sous Linux

  3. Comment changer la taille du MTU sous Linux

  4. Comment obtenir le répertoire absolu d'un fichier dans bash ?

  5. Comment obtenir la taille physique d'un fichier sous Linux ?

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

Comment trouver la taille totale d'un répertoire sous Linux

Comment obtenir le nombre de processeurs/cœurs sous Linux

Comment copier un répertoire sous Linux

Comment migrer le répertoire HOME sous Linux

Comment vérifier la taille des fichiers et du répertoire sous Linux