Linux下使用Trash删除文件到回收站
trash-cli 用于移动文件到回收站,同时会记录文件的原地址、删除日期和权限。trash-cli 和 KDE、GNOME、XFCE 使用同一个回收站,你可以在命令行或脚本运行 trash-cli。
安装
1 | sudo pacman -S trash-cli |
命令
命令 | 作用 |
---|---|
trash-put | 把文件或目录移动到回收站 |
trash-empty | 清空回收站 |
trash-list | 列出回收站文件 |
trash-restore | 恢复回收站文件 |
trash-rm | 删除回收站文件 |
用法
移动文件到回收站:
1
$ trash-put
列出回收站文件:
1
2
3
4$ trash-list
2008-06-01 10:30:48 /home/andrea/bar
2008-06-02 21:50:41 /home/andrea/bar
2008-06-23 21:50:49 /home/andrea/foo搜索回收站文件:
1
2
3$ trash-list | grep foo
2007-08-30 12:36:00 /home/andrea/foo
2007-08-30 12:39:41 /home/andrea/foo恢复回收站文件:
1
2
3
4
5
6
7
8
9$ trash-restore
0 2007-08-30 12:36:00 /home/andrea/foo
1 2007-08-30 12:39:41 /home/andrea/bar
2 2007-08-30 12:39:41 /home/andrea/bar2
3 2007-08-30 12:39:41 /home/andrea/foo2
4 2007-08-30 12:39:41 /home/andrea/foo
What file to restore [0..4]: 4
$ ls foo
foo删除所有回收站文件:
1
$ trash-empty
删除回收站中 n 天前被回收的文件:
1
$ trash-empty <days>
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13$ date
Tue Feb 19 20:26:52 CET 2008
$ trash-list
2008-02-19 20:11:34 /home/einar/today
2008-02-18 20:11:34 /home/einar/yesterday
2008-02-10 20:11:34 /home/einar/last_week
$ trash-empty 7
$ trash-list
2008-02-19 20:11:34 /home/einar/today
2008-02-18 20:11:34 /home/einar/yesterday
$ trash-empty 1
$ trash-list
2008-02-19 20:11:34 /home/einar/today只删除符合某种模式的文件:
1
$ trash-rm \*.o
注意:要用双引号圈住模式来避免 shell 拓展。
常见问题
如何创建顶级 .Trash 目录?
1
2
3sudo mkdir --parent /.Trash
sudo chmod a+rw /.Trash
sudo chmod +t /.Trash我能把
rm
的别名设置为trash-put
吗?可以,但不应该这样做。以前我觉得这是个好主意,但现在我不觉得。
虽然
trash-put
的界面看起来与rm
兼容,但它们有不同的语法,这些差异会导致一些问题。比如,用rm
删除目录时需要-R
,trash-put
则不需要。但有时候我忘记用
trash-put
了,真的不能给rm
设置别名吗?你可以给
rm
设置一个别名来提醒你不要使用它:1
alias rm='echo "This is not the command you are looking for."; false'
如果你真的要用
rm
,那就在rm
前加上斜杠来取消别名:1
\rm file-without-hope
注意,Bash 别名是有在交互式界面才有效,所以使用这个别名不会影响使用
rm
的脚本。被移动到回收站的文件在哪?从 home 分区移动到回收站的文件在这:
1
~/.local/share/Trash/