Supprimer le répertoire indirectement à l’intérieur de lui-même

J’ai un répertoire à l’intérieur de lui-même. Comment puis-je le supprimer?

~/.local/share/Trash/files$ ls devices/ reg-dummy ~/.local/share/Trash/files$ ls devices/reg-dummy/ subsystem ~/.local/share/Trash/files$ ls devices/reg-dummy/subsystem/ devices 

Aussi

 ~/.local/share/Trash/files$ find devices/ | head -n 20 devices/ devices/reg-dummy devices/reg-dummy/subsystem devices/reg-dummy/subsystem/devices devices/reg-dummy/subsystem/devices/reg-dummy devices/reg-dummy/subsystem/devices/reg-dummy/subsystem devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy 

De plus, bien que mon cerveau ne puisse pas résoudre le problème d’arrêt, il semble que les sudo rm -rf devices indéfiniment sans produire de sortie.

 ~/.local/share/Trash/files$ sudo rm -rf devices ^C~/.local/share/Trash/files$ 

Même chose pour perl -e 'use File::Path qw(remove_tree); remove_tree("$ENV{HOME}/.local/share/Trash/files/devices")' perl -e 'use File::Path qw(remove_tree); remove_tree("$ENV{HOME}/.local/share/Trash/files/devices")' . Même chose pour les du -s devices/ . Même chose pour les commandes du -sch ~/.local/share/Trash/ Other

 $ cd ~/.local/share/Trash/files/devices/reg-dummy/subsystem/devices/ $ ls -ldi 8131921 drwxr-xr-x 3 theking theking 4096 Mar 17 19:43 . $ cd reg-dummy/subsystem/devices/ $ ls -dli 8131926 drwxr-xr-x 3 theking theking 4096 Mar 17 19:43 . $ find .local/share/Trash/files/ -maxdepth 1 -delete find: cannot delete `.local/share/Trash/files/devices': Directory not empty find: cannot delete `.local/share/Trash/files/': Directory not empty 

Je ne veux pas que ça rest coincé dans ma poubelle pour toujours!

Remarque: je faisais une sauvegarde grossière d’un ordinateur simplement en utilisant scp , mais j’ai manqué d’espace et c’est arrivé.

La sortie de ls -ldi indiquera le numéro d’inode du répertoire. Si le répertoire dans le répertoire a vraiment le même numéro d’inode que son ancêtre, plutôt que le même nom, votre système de fichiers est corrompu et vous devrez démarrer en mode de secours et le fsck.

Je pense toujours que rm -rf fonctionnera si vous lui donnez suffisamment de temps, mais si ce n’est pas le cas, l’un ou les deux devraient:

 perl -e 'use File::Path qw(remove_tree); remove_tree("$ENV{HOME}/.local/share/Trash/files/devices")'` 

 find .local/share/Trash/files/ -delete 

Vous pouvez vous assurer que quelque chose se passe si vous utilisez au moins rm -rfv ~/.local/share/Trash/files/devices qui vous indiquera que des fichiers sont en cours de suppression.

Quoi qu’il en soit, cela ne peut pas être un problème de liaison physique (malgré mon très mauvais commentaire) car les répertoires ne peuvent pas être reliés de manière permanente sous Linux. En général, lorsque vous avez une récursion infinie, comme cela peut arriver avec des liens symboliques, vous recevez un message à cet effet, cela ne semble pas se produire.

L’autre possibilité à laquelle je peux penser est que le dossier Corbeille est un système étrange qui lui est propre. Je ne sais pas vraiment comment ça marche, je ne l’utilise jamais. Cependant, vous aurez peut-être plus de chance en supprimant directement les fichiers de niveau supérieur au lieu de cibler le répertoire problématique:

 rm -rf ~/.local/share/Trash/* 

Vous devriez également essayer de vider le dossier Corbeille de l’interface graphique. Il vous suffit de sélectionner Corbeille et de cliquer sur “Vider la corbeille” pour voir si cela fonctionne.

(Je suis persuadé que cela fonctionnera et que, comme je vais voyager maintenant, je laisserai ceci comme réponse que je pourrai supprimer à l’avenir si cela ne fonctionne pas.)

  1. Tout d’abord, pour être sûr, exécutez

     find ~/.local/share/Trash/files/devices/ -exec echo {} \; 
  2. Deuxièmement, si le résultat de “1” ne montre aucun fichier important, lancez

     find ~/.local/share/Trash/files/devices/ -exec rm {} \; 
  3. La dernière étape serait

     find ~/.local/share/Trash/files/devices/ -empty -type d -delete