linux下的rm命令是个危险的命令,它不会把文件放入垃圾箱,而是直接删除。有时候不小心会造成无法挽回的后果。私人垃圾箱是个解决此类问题的好办法。它通过alias机制指向一个脚本,脚本里做的事情就是把文件mv到私人垃圾箱。
以ubuntu12.04举例,
ubuntu自带了一个垃圾箱,但是它针对的是窗口界面操作,在终端里用不到。
一,创建私人垃圾箱
假设我的用户名是john。
mkdir /home/john/trash
二,给rm命令创建别名
vim ~/.bashrc
alias rm="sh /home/john/saferm.sh"
source ~/.bashrc
三,编写saferm.sh脚本,
可以从https://github.com/lagerspetz/linux-stuff处下载scripts/saferm.sh,也可以自己写。
github上这个脚本,不光支持rm的操作,还支持带-rf等各类参数的rm操作。当然,rm后面带多个删除对象也是支持的。
我们把saferm.sh放到/home/john/下,和上面对应。
修改saferm.sh,把里面对应垃圾箱路径的宏改成/home/john/trash。我下载的saferm.sh版本是1.16,修改的宏为trash_desktops和trash_fallback。
四,enjoy。
备注:1、如何解决日益增加的垃圾,有2个办法。一是设置定时任务清理,二是手动清理,但是不能直接敲rm命令,因为它被alias了不是吗?你可以写个脚本进行删除。在脚本里的rm是不受alias影响的。我采用的方法是复制~/.bashrc一份到~/.bashrc_no_safe_rm。在bashrc_no_safe_rm里改为alias rm="rm"。当我需要清理垃圾箱的时候,source ~/.bashrc_no_safe_rm,清理完后,source ~/.bashrc。