Supprimer le contenu d'un dossier contenant des milliers de fichiers (aka /bin/rm: Argument list too long.)

Il arrive parfois qu'un dossier soit remplit de milliers de fichiers, souvent suite a des problèmes de spam ou de cache qui ont mal tourné.
Le problème de ces milliers de fichiers, outre la place consommée sur le disque est qu'ils consomment des inodes et ralentissent considérablement les taches de backup.

Il est donc bon de vouloir les supprimer, la commande rm -rf * fait souvent l'affaire.
Sauf si vous avez vraiment beaucoup beaucoup de fichiers.. dans ce cas la commande vous retourne :
/bin/rm: Argument list too long.


Afin de contourner ce problème il vaut mieux utiliser la commande find et son option delete.

La comande suivante va effacer tous les fichiers d'un dossier, un par un et vous les afficher à l'écran :

# find . -type f -print -delete


L'autre alternative qui est plus radicale et rapide mais ne donne pas de rapport sur ce qui a été supprimé est l'éxécution de ce script :

# time perl -e 'for(<*>){((stat)[9]<(unlink))}'
Ccommande à exécuter dans le dossier ou on veut supprimer les fichiers !!
Par contre elle n'affecte pas les sous dossiers.

 

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

Articles connexes

Sécurisation Wordpress : désactiver l accès aux fichiers php là ou il n y en a pas besoin

La pluspart des hacks wordpress résultent soit de l'utilisation d'un script php dans le dossier...

Activer l'Email Level Plugin pour permettre à vos clients de gérer leur password email et messages de vacances directement.

Activer et configurer l "Email level plugin" Voici la procédure à réaliser sur votre hébergement...