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 Users Found This Useful
Was this answer helpful?

Related Articles

Comment changer le port par défaut de ssh ?

Pour les serveurs, sous Linux,il est fréquemment recommandé de changer le port par défaut du...

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...

Service Level Agremment (SLA) / Guaranteed fault repair time (GTR)

We provide the following guarantees with you dedicated server : Service Level Agreement : We have...