如何管理在“/”下创建的垃圾箱?

如何管理在“/”下创建的垃圾箱?

上次我扔掉了一个文件

$ 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
  1. 现在我无法清空垃圾箱:

    $ 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
    

    我怎样才能清空垃圾箱?

  2. 我也无法列出垃圾箱中的文件

    $ 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",

资料来源:

https://github.com/andreafrancia/trash-cli/issues/65

https://www.linuxquestions.org/questions/linux-desktop-74/how-do-empty-view-trash-files-on-mounted-volumes-899188/

https://en.wikipedia.org/wiki/Sticky_bit

答案2

只需使用 rm 命令(包括 -r 和 -f 开关)将其删除即可。这些将删除任何已删除文件的目录 (r) 和符号链接 (f)。

rm -rf /.Trash/0/files/*

不要忘记全局扩展 (*),否则您将删除垃圾目录。

echo "alias empty='rm -rf /.Trash/0/files/*'" >> ~/.bashrc

这会创建一个别名,因此现在您可以使用命令清空垃圾箱empty

相关内容