Tag Archives: find

Trouver les répertoires vides et les fichiers vides sous Linux

Aujourd'hui j'ai eu besoin de trouver quels étaient les dossiers vides de mon Linux Ubuntu et quels étaient les fichiers dont la taille est de 0 byte.

Après recherche, Linux permet de trouver ces répertoires et fichiers vides grâce à la commande "find".

Trouver les répertoires vides en utilisant la commande find

Pour trouver les dossiers vides du répertoire courant, il faut exécuter la commande suivante:

find . -type d -empty

Pour trouver les dossiers vides du répertoire "/tmp", il faut exécuter la commande suivante:

find /tmp -type d -empty

On peut également supprimer ces répertoires automatiquement via la commande suivante:

find /tmp -type d -empty -exec rmdir {} \;

Attention toutefois à ne pas supprimer les répertoires vides des dossiers systèmes.

Trouver les fichiers vides en utilisant la commande find

Pour trouver les fichiers vides (fichiers de 0 bytes), il faut exécuter la commande suivante:

find . -type f -empty

Veillez noter que ces fichiers sont généralement utilisés comme verrous ou en fichiers tampons par certaines applications. Supprimez les avec attention.

Allez plus loin avec les fichiers vides et la commande find

Pour connaitre le nombre de fichiers vides dans le répertoire courant, il suffit d'utiliser la commande suivante:

find . -type f -empty | wc -l

Pour connaitre le nombre de fichiers NON vides dans le répertoire courant, il suffit d'utiliser la commande suivante:

find . -type f -not -empty | wc -l

Veuillez noter que l'option "-not" inverse l'option requêtée.

Trouver des fichiers par leur taille sur Linux Ubuntu

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

Inline
Inline