Nous avons un problème avec un dossier qui devient lourd avec des centaines de milliers de petits fichiers.
Il y a tellement de fichiers qui exécutent rm -rf
renvoie une erreur et à la place, nous devons faire quelque chose comme :
find /path/to/folder -name "filenamestart*" -type f -exec rm -f {} ;
Cela fonctionne mais est très lent et échoue constamment à cause du manque de mémoire.
Y a-t-il une meilleure manière de faire cela? Idéalement, je voudrais supprimer tout le répertoire sans me soucier du contenu qu'il contient.
Réponse acceptée :
L'utilisation de rsync est étonnamment rapide et simple.
mkdir empty_dir
rsync -a --delete empty_dir/ yourdirectory/
La réponse de @sarath mentionnait un autre choix rapide :Perl ! Ses benchmarks sont plus rapides que rsync -a --delete
.
cd yourdirectory
perl -e 'for(<*>){((stat)[9]<(unlink))}'
Origine :
- https://stackoverflow.com/questions/1795370/unix-fast-remove-directory-for-cleaning-up-daily-builds
- http://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux