Le ménage des dossiers vides ou presque

Bon, le printemps approche (le vrai du moins, il fait 20°c dehors et les terrasses des cafés sont pleines).

Il est donc temps de faire le ménage qui va avec. Qui n’a pas tellement de dossiers dans son architecture qu’il ne connait même plus leur existence.
On commence par virer les fichiers vides (ayant 0 pour taille) :

find -type f -empty -print -delete

Virer les dossiers vides :

find -type d -empty -print -delete

Notre bon vieux find.
Je ne veux que les dossiers
Et vides aussi tant qu’on y est.
Tu me l’affiches
Et tu me le dégages
N’hésitez pas à le refaire quelques fois, car en supprimant des dossiers vides vous aurez peut être vidé leurs parents.

Et maintenant, les dossiers contenant moins d’éléments (dossiers fichiers confondus) qu’un certain seuil.
Un dossier pour moi c’est pour y classer des choses, alors un dossier avec 1 ou 2 éléments dedans c’est un peu inutile non ?
Ici dans le script le filtre est placé a 5.
Le script est à placer dans votre ~/bin et ne pas oublier de le chmoder u+x (droit d’exécution pour l’utilisateur)

#!/bin/bash
#seuil au dessus duquel on accepte un dossier
seuil=5

#redefini le retour a la ligne comme séparateur pour les éléments du for
IFS="
"

#foreach sur chaque dossier
for f in `find -type d`;
do
	#Tu me fais un ls et si le nombre d'éléments trouvés (wc -l) est inférieur ou égal au seuil
	#Tu le dis
	if [ `ls $f | wc -l` -lt $seuil ]; then
		echo "$f: `ls $f | wc -l`"
	fi
done

Voici une sortie type du script :

./COMPIL Génériques: 2
./Scooter: 2
./ARTIST Dee Dee: 2
./ARTIST Royksopp: 2
./ARTIST Manau: 3
./ARTIST Holly Valance: 3
./Artiste inconnu: 3
./Artiste inconnu/single: 1

Voilà quelques outils pour vous aider à un peu faire le vide. Bon ménage !

Posted in Linux at March 18th, 2010. Comments Off on Le ménage des dossiers vides ou presque.