我里面有一个目录。我该如何删除它?
~/.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
,但是空间不足,然后发生了这种情况。
答案1
的输出ls -ldi
将显示目录的 inode 编号。如果目录中的目录确实与其祖先具有相同的 inode 编号,而不仅仅是相同的名称,则您的文件系统已损坏,您需要启动到救援模式并对其进行 fsck。
答案2
我仍然认为,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
至少会发生这种情况,它会让您知道文件正在被删除。
无论如何,这不可能是硬链接问题(尽管我的评论非常错误),因为在 Linux 下目录不能硬链接。通常,当您有无限递归时(软链接可能发生这种情况),您会收到一条消息,但似乎不会发生这种情况。
我能想到的另一种可能性是,垃圾文件夹本身就是一个奇怪的系统。我真的不知道它是如何工作的,我从来没有用过它。不过,直接删除顶层文件可能会比定位有问题的目录更幸运:
rm -rf ~/.local/share/Trash/*
您还应该尝试从 GUI 清空垃圾箱文件夹,只需选择垃圾箱并单击“清空垃圾箱”,看看是否有效。
答案3
(我相信这会起作用,而且因为我现在要去旅行,所以我会把这个保留为答案,如果它不起作用,我可以在将来删除它。)
首先,为了安全起见,运行
find ~/.local/share/Trash/files/devices/ -exec echo {} \;
其次,如果“1”的输出没有显示任何重要文件,则运行
find ~/.local/share/Trash/files/devices/ -exec rm {} \;
最后一步是
find ~/.local/share/Trash/files/devices/ -empty -type d -delete