$ pwd
/tmp/test
$ trash mfile
trash: cannot trash regular file `mfile'
$ sudo trash mfile
$
文件进入
$ sudo ls /.Trash/0/files -la
total 12
drwx------ 2 root root 4096 May 19 16:52 .
drwx------ 4 root root 4096 May 19 16:52 ..
-rw-rw-r-- 1 t t 6 May 19 16:48 mfile
现在我无法清空垃圾箱:
$ sudo trash-empty $ sudo ls /.Trash/0/files -la total 12 drwx------ 2 root root 4096 May 19 16:52 . drwx------ 4 root root 4096 May 19 16:52 .. -rw-rw-r-- 1 t t 6 May 19 16:48 mfile
我怎样才能清空垃圾箱?
我也无法列出垃圾箱中的文件
$ sudo trash-list [sudo] password for t: TrashDir skipped because parent not sticky: /.Trash/0
谢谢。
答案1
我相信这个问题的根本原因是,当为已安装的分区创建垃圾文件夹时,可以在没有粘性位放。安装到任何一个时都会出现这种情况“system_internal”安装路径 已报告有关此问题的错误垃圾-cli并添加了在提交(2a83ed5)中向trash-empty添加秘密--trash-dir选项的解决方法,以允许trash-empty绕过粘性位检查清空指定目录。这条线索引导我们找到最简单的解决方案。只需使用以下命令在相关垃圾文件夹上设置粘滞位chmod +t /mount/point/.Trash
即可使垃圾按预期运行。我已经/srv
在Ubuntu 16.04/home
和Ubuntu 18.04 上安装的分区上测试了这种方法/media/$USER/VolumeName
,结果如预期成功。我希望这种方法也适用于其他“nix”。
笔记:此方法不适用于不支持设置粘性位的文件系统,例如 NTFS 和 FAT,但在 EXT2/3/4 文件系统上效果很好。
这是其中的列表“system_internal”安装路径:
"/", /* we already have "Filesystem root" in Nautilus */
"/bin",
"/boot",
"/compat/linux/proc",
"/compat/linux/sys",
"/dev",
"/etc",
"/home",
"/lib",
"/lib64",
"/libexec",
"/live/cow",
"/live/image",
"/media",
"/mnt",
"/opt",
"/rescue",
"/root",
"/sbin",
"/srv",
"/tmp",
"/usr",
"/usr/X11R6",
"/usr/local",
"/usr/obj",
"/usr/ports",
"/usr/src",
"/usr/xobj",
"/var",
"/var/crash",
"/var/local",
"/var/log",
"/var/log/audit", /* https://bugzilla.redhat.com/show_bug.cgi?id=333041 */
"/var/mail",
"/var/run",
"/var/tmp", /* https://bugzilla.redhat.com/show_bug.cgi?id=335241 */
"/proc",
"/sbin",
"/net",
"/sys",
资料来源:
答案2
只需使用 rm 命令(包括 -r 和 -f 开关)将其删除即可。这些将删除任何已删除文件的目录 (r) 和符号链接 (f)。
rm -rf /.Trash/0/files/*
不要忘记全局扩展 (*),否则您将删除垃圾目录。
echo "alias empty='rm -rf /.Trash/0/files/*'" >> ~/.bashrc
这会创建一个别名,因此现在您可以使用命令清空垃圾箱empty
。