У меня есть каталог в себе. Как я удаляю его.
~/.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
Также
~/.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
Кроме того, хотя мой мозг не может решить проблему остановки, это появляется это sudo rm -rf devices
продолжается навсегда, не производя вывод.
~/.local/share/Trash/files$ sudo rm -rf devices
^C~/.local/share/Trash/files$
То же самое для perl -e 'use File::Path qw(remove_tree); remove_tree("$ENV{HOME}/.local/share/Trash/files/devices")'
. То же самое для du -s devices/
. То же самое для du -sch ~/.local/share/Trash/
Другие команды
$ 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
Я не хочу это, всунул мой мусор навсегда!
Примечание: Я делал сырое резервное копирование компьютера путем простого использования scp
, и но у меня закончилось пространство, и затем это произошло.
Вывод ls -ldi
покажет inode количество каталога. Если каталог в рамках каталога действительно имеет то же inode число как свой предок, а не просто то же имя, то Ваша файловая система повреждена и необходимо будет загрузить в спасательный режим и fsck его.
Я все еще думаю, что rm -rf
будет работать, если Вы дадите ему достаточно времени, но в противном случае один или оба из них должен:
perl -e 'use File::Path qw(remove_tree);
remove_tree("$ENV{HOME}/.local/share/Trash/files/devices")'`
find .local/share/Trash/files/ -delete
можно удостовериться, что что-то происходит, если Вы используете rm -rfv ~/.local/share/Trash/files/devices
, по крайней мере, который сообщит, что файлы удаляются.
Так или иначе, это не может быть hardlink проблемой (несмотря на мой очень неправильный комментарий), потому что каталоги не могут быть hardlinked в соответствии с Linux. В целом, когда у Вас есть бесконечная рекурсия, как это может произойти с softlinks, Вы получите сообщение к тому эффекту, которого, кажется, не происходит.
другая возможность, о которой я могу думать, состоит в том, что Папка "Удаленные" является некоторой странной собственной системой. Я действительно не знаю, как это работает, я никогда не использую его. Однако у Вас могла бы быть лучшая удача при удалении высокоуровневых файлов непосредственно вместо того, чтобы быть нацеленными на проблематичный каталог:
rm -rf ~/.local/share/Trash/*
необходимо также попытаться освободить Папку "Удаленные" от GUI, просто избранный Мусор и нажать на "Empty Trash", видеть, работает ли это.
(Я уверен, что это будет работать и когда я собираюсь путешествовать прямо сейчас, я оставлю это как ответ, который я могу удалить в будущем, если оно не работает.)
Первый, для сейфа, выполнение
find ~/.local/share/Trash/files/devices/ -exec echo {} \;
find ~/.local/share/Trash/files/devices/ -exec rm {} \;
заключительный шаг был бы
find ~/.local/share/Trash/files/devices/ -empty -type d -delete