Bon, j'ai enfin résolu les problèmes. Cela était dû aux erreurs du système de fichiers qui causaient ls
s'afficher à tort et d'autres utilitaires à mal fonctionner.
Je suis désolé que le titre de la question soit trompeur (malgré qu'il y ait effectivement de nombreux fichiers dans u/
, le répertoire n'est pas extrêmement volumineux ).
J'ai résolu le problème en utilisant une clé USB en direct puisque le système de fichiers corrompu est /
. Le correctif appliquait simplement sudo fsck -cfk /dev/sda2
où dev/sda2
est le disque corrompu.
Vous ne pouvez pas supprimer d'énormes quantités de fichiers en utilisant rm
. Vous pouvez soit faire
find u/ -type f -print0 | xargs -r -0 rm -f
cela supprimera uniquement les fichiers ; pour tout supprimer, utilisez
find u/ -print0 | xargs -r -0 rm -rf
vous pouvez probablement utiliser le --delete
possibilité de find
, si votre système l'a :
find u/ -type f --delete
ou la méthode funky avec rsync
:
mkdir emptyfolder
rsync -r --delete emptyfolder/ u/
rsync
est bien plus rapide que rm
lors de la suppression d'éléments, car cela contournera certaines vérifications.
Vous pouvez essayer find /u -type f | while read f; do rm -f $f; done
Cela prendra un certain temps mais pourrait fonctionner. Pour une raison quelconque, les boucles dans bash fonctionnent bien lorsque les autres approches échouent.