GNU/Linux >> Tutoriels Linux >  >> Linux

Linux – Supprimer efficacement un grand répertoire contenant des milliers de fichiers ?

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 :

  1. https://stackoverflow.com/questions/1795370/unix-fast-remove-directory-for-cleaning-up-daily-builds
  2. http://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux

Linux
  1. Exemples pratiques de la commande rsync sous Linux

  2. Linux Supprimer des fichiers et des répertoires

  3. 5 exemples pratiques pour supprimer / supprimer un répertoire sous Linux

  4. Comptage récursif des fichiers dans un répertoire Linux

  5. Linux équivalent à robocopy ?

Rechercher et supprimer le fichier le plus ancien s'il y a plus de X fichiers dans un répertoire sous Linux

Comment déplacer un grand nombre de fichiers sous Linux

Comment copier un grand nombre de fichiers sous Linux

Comment compter les fichiers dans le répertoire sous Linux

Compter le nombre de fichiers dans un répertoire sous Linux

Exemples de commandes Linux rsync