Linux : comment obtenir la taille d’un répertoire ? La réponse avec la commande du
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à calculer la taille d'un dossier sous Linux, à l'aide de la commande "du". Que ce soit sous Linux, ou sur un autre système d'exploitation, il peut s'avérer nécessaire et utile d'être capable d'afficher la taille totale d'un dossier ou d'un fichier.
Sous Linux, la commande "du" qui signifie "Disk Usage", fait partie des commandes indispensables, notamment sur un système dépourvu d'interface graphique.
Version originale de l'article : 6 mars 2013.
II. Calculer la taille d'un dossier avec du
Pour cette démonstration, nous allons utiliser le répertoire "/home/flo/docs" qui contient plusieurs fichiers, comme le montre l'image ci-dessous :
ls -l /home/flo/docs
Tout d'abord, il faut savoir que le fait d'exécuter la commande "du" sans option va permettre d'obtenir la taille du répertoire courant.
du
Dans le cas présent, la valeur retournée est celle-ci : 350004. Voilà, ceci correspond à la taille, en octets, de ce répertoire.
Pour que ce soit plus facile à lire, nous allons ajouter l'option "-h" qui signifie "Human readable" et qui permet d'afficher le résultat en kilo-octets, méga-octets, giga-octets, etc... Afin d'avoir une valeur plus facilement compréhensible pour un humain.
du -h
Cette fois-ci, le résultat est plus explicité : 342M, pour 342 Mo.
Voici la différence en image :
Ici, il n'y a pas de sous-dossiers dans "/home/flo/docs", donc la commande retourne uniquement la taille de ce répertoire. Il est à noter que s'il y a des sous-dossiers, la commande du va retourner la taille totale, ainsi que la taille pour chaque sous-dossier. Pratique, n'est-ce pas...
Voici un exemple, si l'on remonte d'un cran (/home/flo) :
Si l'on souhaite obtenir un résultat plus compact avec uniquement la taille totale, l'option "s" doit être ajoutée, comme ceci :
du -sh
Enfin, sachez que pour calculer la taille du répertoire de notre choix, il suffit de le préciser à la suite de la commande. Par exemple, si l'on désire calculer la taille du répertoire "/etc/" de notre machine :
du -sh /etc/
Peu importe dans quel répertoire on se situe (au niveau du prompt), c'est bien la taille du répertoire cible qui est calculée.
Remarque : si vous spécifiez le chemin vers un fichier, vous pouvez obtenir sa taille dans un format human readable avec l'option "h". Toutefois, cette option est également disponible avec la commande "ls" que vous connaissez certainement.
III. Obtenir la liste des répertoires les plus volumineux
La commande du, couplée aux commandes sort et head, va permettre d'obtenir la liste des répertoires les plus volumineux présents sur votre machine Linux. Dans certaines situations, notamment si l'on a besoin de libérer de l'espace disque sur un serveur Linux, ceci peut s'avérer très pratique. Ce qui est intéressant, c'est que l'on peut effectuer cette recherche sur une partie spécifique du système de fichiers : /var, /home, /etc, etc.
Sur une machine où il y a de nombreux utilisateurs, nous pourrions rechercher les répertoires "home" les plus volumineux.
Pour cela, nous allons cibler "/home" avec du puis envoyer le résultat à la commande sort pour trier les répertoires en fonction de leur taille, et enfin, nous allons envoyer la sortie de la commande sort à la commande head pour afficher que les 5 premiers répertoires (il suffit de modifier cette valeur pour avoir un Top 3, un Top 5, un Top 10, etc.).
Ce qui donne :
du -h --max-depth=1 /home/ | sort -rh | head -5
L'option "--max-depth=1" permet de prendre uniquement les répertoires de premier niveau (c'est-à-dire les répertoires avec le nom des utilisateurs, dans notre cas). C'est important, car sinon la sortie de la commande sera moins explicite.
Voici la différence avec ou sans cette option :
IV. Conclusion
La commande du, disponible sur Debian, Ubuntu, Red Hat, etc... est très pratique, et elle doit être connue de tous les administrateurs systèmes qui ont besoin de gérer des machines Linux. 😉
Enfin, pensez à précéder la commande "du" avec "sudo" pour éviter d'utiliser directement le compte "root" et avoir suffisamment de privilèges pour calculer la taille d'un répertoire ou d'une arborescence complète.
comment je peux savoir la taille d’un fichier ou d’un dossier?
c’est certainement un peu peu tard mais c’est
du -sh /nomdudossier
Bonjour,
La taille d’un fichier avec ces commandes et en Mo ou Mio ?
commande bien pratique merci
Sinon, encore mieux, installer ncdu :p