У меня есть каталог внутри себя. Как мне это удалить.
~/.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
, но мне не хватило места, и тогда это произошло.
filesystem
PyRulez
источник
источник
rm -rf devices
?ls -dli devices
andls -dli devices/reg-dummy/subsystem/devices/
ls -ldi devices
, а неdevice
. Я пытаюсь увидеть, действительно ли это жесткие ссылки (тот же индекс). Однако имейте в виду, что если это большой каталог,rm -rf
это займет много времени, но в конечном итоге будет работать. Если проблема заключается в циклических ссылках, вы получите сообщение об ошибке бесконечной рекурсии. Если нет сообщения об ошибке, просто дайтеrm -rf
запустить его курс.Ответы:
Вывод
ls -ldi
покажет номер инода каталога. Если каталог внутри каталога действительно имеет тот же номер инода, что и его предок, а не просто то же имя, тогда ваша файловая система повреждена, и вам нужно будет загрузиться в режиме восстановления и выполнить fsck.источник
Я все еще думаю, что
rm -rf
это сработает, если вы уделите этому достаточно времени, но если нет, один или оба из них должны:Вы можете быть уверены, что что- то происходит, если вы используете,
rm -rfv ~/.local/share/Trash/files/devices
по крайней мере, это позволит вам знать, что файлы удаляются.В любом случае, это не может быть проблемой жесткой ссылки (несмотря на мой очень неправильный комментарий), потому что каталоги не могут быть жестко связаны в Linux. В общем, когда у вас бесконечная рекурсия, как это может случиться с программными ссылками, вы получите сообщение об этом, которого, по-видимому, не происходит.
Другая возможность, о которой я могу подумать, заключается в том, что папка Trash - это некая странная система. Я действительно не знаю, как это работает, я никогда не использую это. Однако вам может повезти, если вы удалите файлы верхнего уровня напрямую, а не на проблемный каталог:
Вам также следует попробовать очистить папку «Корзина» из графического интерфейса, просто выберите «Корзина» и нажмите «Очистить корзину», посмотрите, работает ли она.
источник
rm
произведут никакого вывода. Как долго они бежали? Я также обновилfind
команду, предыдущая была неправильной, извините. Посмотрите на обновленный ответ. Наконец, мы здесь работаем вслепую. Пожалуйста, обновите ваш вопрос с выводом,ls -l
где вы использовалиls
, а также показать результат,du -sch ~/.local/share/Trash/
чтобы мы знали размер.du -sch ~/.local/share/Trash/
что даст вам размер. И, пожалуйста, добавьте весь материал, который просили различные комментарии, они нужны, чтобы мы могли понять, что происходит.(Я уверен, что это сработает, и, поскольку я собираюсь путешествовать прямо сейчас, я оставлю это как ответ, который я могу удалить в будущем, если он не будет работать.)
Во-первых, чтобы быть в безопасности, беги
Во-вторых, если при выводе «1» не было обнаружено ни одного важного файла, запустите
Последний шаг будет
источник