GNU/Linux >> Tutoriels Linux >  >> Linux

Debian - suppression de milliers de fichiers

La suppression du répertoire devrait fonctionner. Vous pourriez rencontrer des problèmes si vous essayez de supprimer des fichiers individuels car il y en a tellement. Vous n'utilisez pas rm -rf dirname/* êtes-vous ?

Je suppose que vous perdez la connexion ssh à cause de l'inactivité, êtes-vous sûr que la commande n'a pas été exécutée correctement sur le serveur ?

Dans tous les cas, une solution de contournement possible serait d'utiliser nohup :

nohup rm -rf dirname

Vous pouvez lancer la commande et vous déconnecter, elle continuera en arrière-plan.

MISE À JOUR :

J'ai trouvé cette question sur U&L.SE, je vous recommande d'y jeter un coup d'œil. Malheureusement, je ne peux pas recréer votre problème. J'ai créé un répertoire avec 2516007 fichiers et je pourrais toujours le supprimer en utilisant rm -rf :

$ mkdir ha
$ for X in $(seq 1 10000);do touch {1..10000}_$X; done
$ ls -f ha | wc -l 
  2516007     <= I stopped before the for loop finished, but this should be enough
$ time rm -rf ha/
  real  23m11.695s
  user  0m3.540s
  sys           0m42.891s

Ainsi, il a fallu 20 minutes pour supprimer environ 2 millions de fichiers vides. Il semble raisonnable que cela puisse prendre des heures pour supprimer une énorme quantité de fichiers non vides.

Quoi qu'il en soit, certaines des suggestions de la question U&L devraient aider. Plus précisément celui-ci :

find /delb -type f  --delete

ou celui-ci (légèrement modifié par rapport à l'original)

find /delb -type f -print0 | xargs -0r rm -f

Enfin, une astuce que vous pourriez faire est de supprimer quelques fichiers à la fois. Si vous savez que certains noms de fichiers commencent par la chaîne "foo", d'autres par "bar", etc., procédez comme suit :

rm -rf /delb/foo*
rm -rf /delb/bar*

etc. Vous pouvez également essayer quelque chose comme ceci :

for n in {a..z}; do rm -rf /delb/$n*; done
for n in {A..Z}; do rm -rf /delb/$n*; done
for n in {0..9}; do rm -rf /delb/$n*; done

Cette dernière commande supprimera séquentiellement chaque nom de fichier commençant par chaque lettre de l'alphabet, puis tous les noms de fichiers commençant par des chiffres.


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

  2. Comment déplacer 100 fichiers d'un dossier en contenant des milliers ?

  3. Fichier 7zip :comment décompresser des fichiers 7z sur Ubuntu, Debian, Fedora

  4. suppression de fichiers mais l'espace disque est toujours plein

  5. Trop de fichiers ouverts sur Debian

Comment trouver des fichiers dans Debian 10

Comment manipuler des fichiers sur Debian 11

5 façons de libérer de l'espace disque sur Debian 10

Comment regarder ou surveiller les fichiers journaux dans Debian 10

Comment trouver des fichiers dans Debian

Comment supprimer des fichiers en toute sécurité à l'aide de la commande Shred dans Debian 11