Trouver des fichiers par leur taille sur Linux Ubuntu

find

Ce matin, mon serveur a eu un souci: le disque principal était plein, ce qui n'est pas du tout normal. Cela signifie donc que quelque chose a utilisé l'espace disque de ma machine.

J'ai donc cherché sur internet comment trouver les fichiers les plus gros afin de voir quels étaient les fichiers consommateurs d'espace.

Lister les plus grands fichiers

Voici la commande que j'ai utilisé afin de trouver les fichiers dépassant une certaine taille.

find {/chemin} -type f -size +{taille_en_kb}k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

Par exemple pour chercher des fichiers de plus de 50Mb dans le répertoire courant, il faut utiliser la commande suivante:

find . -type f -size +50000k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

Ce qui retourne quelque chose comme çà:

./Sample/lost-intimetf.1080p.sample.mkv: 75M
./lost-intimetf.1080p.mkv: 8.0G

Un autre exemple intéressant est de pouvoir lister sous forme d'arborescence la liste des fichiers dépassant une certaine taille:

find $HOME -size -500b

Pour lister tous les fichiers de l'ordinateur qui ont exactement un taille de 20 blocs de 512 bytes, il suffit de taper:

find / -size 20

Astuce Perl pour afficher les gros fichiers

Voici un petit code en Perl (trouvé sur le net) qui permet d'afficher les fichiers les plus gros:

du -k | sort -n | perl -ne 'if ( /^(\d+)\s+(.*$)/){$l=log($1+.1);$m=int($l/log(1024)); printf  ("%6.1f\t%s\t%25s  %s\n",($1/(2**(10*$m))),(("K","M","G","T","P")[$m]),"*"x (1.5*$l),$2);}'

Utiliser ls pour trouver des fichiers

La commande "ls" est très complète et elle peut s'avérer utile dans bien des cas. Par exemple vous pouvez l'utiliser pour trouver les plus gros fichiers d'un répertoire:

ls -lS
ls -lS | less
ls -lS | head +10

Ou bien pour afficher les plus petits fichiers d'un répertoire:

ls -lSr
ls -lSr | less
ls -lSr | tail -10

ff

Leave a Reply

Your email address will not be published. Required fields are marked *