Lister les 10 plus gros fichiers/dossiers d’un répertoire

Imaginons que le dossier /var soit monté sur un système de fichiers dédié et que celui-ci soit plein. Nous voulons alors identifier rapidement les fichiers ou dossiers responsables de cette saturation. Voici comment faire :

# Pour avoir la liste des 10 dossiers les plus gros dans /var :
find /var -type d -exec du -s {} \; | sort -n | tail -n 10

# Pour avoir la liste des 10 fichiers les plus gros :
find /var -type f -exec du -s {} \; | sort -n | tail -n 10

On reconnaît là une utilisation classique de la commande find (encore et toujours) faisant usage de la commande du qui permet d'avoir la taille d'un fichier ou d'un dossier. Plus précisément, on a :

# Affiche la taille du fichier en bytes.
du /un/fichier 

# Affiche récursivement la taille (en bytes) de tous les sous-dossiers
# (quelle que soit la profondeur) du dossier, et affiche à la fin la
# taille du dossier en question.
du /un/dossier

# Affiche seulement la taille (en bytes) du dossier mais n'affiche
# pas la taille des sous-dossiers.
du -s /un/dossier

# Affiche les tailles avec une unité adaptée. Par exemple si
# la taille est de l'ordre du mégabyte alors l'unité utilisée sera
# le mégabyte et non le byte.
du -h /un/truc

# L'option --si est similaire à l'option -h, sauf que les bytes
# sont comptés en puissance de 1000 et non de 1024 comme
# c'est le cas avec l'option -h.
du --si /un/truc

La sortie de la commande find est traitée par la commande sort qui, avec l'option -n, va la classer dans l'ordre croissant en effectuant des comparaisons numériques. Ensuite, avec la commande tail, on coupe la sortie pour n'afficher que les 10 dernières lignes.

Il serait tentant d'utiliser l'option -h (ou --si) de la commande du pour avoir des tailles plus lisibles, mais cela entraînerait un classement incohérent car la commande sort -n fait un classement sur des nombres et n'est pas sensible à la notion d'unité.

Cette entrée a été publiée dans Commandes pratiques, avec comme mot(s)-clef(s) , , , . Vous pouvez la mettre en favoris avec ce permalien.

Les commentaires sont fermés.