Suppression dans une arborescence avec find(1)

J'utilise régulièrement la commande find(1), pour un peu tout et n'importe quoi.

Voici quelques exemples.

Les fichiers

Pour supprimer récursivement plusieurs fichiers situés dans une multitude de dossiers, on peut utiliser la commande suivante.

(Je souhaite supprimer tous les fichiers Thumbs.db)

$ find . -type f -name 'Thumbs.db' -exec rm -f {} \;

Les dossiers

(Je souhaite supprimer tous les dossiers thumbs/)

$ find . -type d -name 'thumbs' -exec rm -Rf {} \;

find(1) va renvoyer une erreur, mais pourtant les répertoires seront supprimés.

Pour éviter ce désagrément, il faut utiliser la commande xargs(1).

$ find . -type d -name 'thumbs' | xargs -exec rm -Rf

Faites attention avec find(1), car on peut rapidement faire des bêtises avec.