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é.

  • 1 Utilisateurs l'ont trouvée utile
Cette réponse était-elle pertinente?

Articles connexes

PACKAGE-CLEANUP: COMMAND NOT FOUND

1 2 [email protected] [~]# package-cleanup --problems -bash: package-cleanup: command...

Cpanel / MariaDB - Could not increase number of max_open_files to more than 100000

Waiting for “mysql” to restart ……waiting for “mysql” to initialize ………finished.Service...

Serveur full (/var/tmp/)

rm -rf /tmp/* service mysql restart service httpd restart

Déployer et renouveler votre certificat SSL sous SolusVM

Votre certificat SSL SolusVM vient d'expirer ou pire encore, vous n'en aviez pas ? Deux petites...

mysql_upgrade failes due to "1045: Access denied"

Erreur lors de la tentative de mise à niveau des tables mysql à l'aide de mysql_upgrade :...

Powered by WHMCompleteSolution