diskgenius

为rm增加回收站功能&用trash-cli避免误删Linux文件

2015-2-3 17:21| 发布者: 蝴蝶| 查看: 4168| 评论: 0|原作者: edwardcmh|来自: 博客园

摘要: 我的上篇博文提到用extundelete恢复在Linux中误删的文件,本着防范于未然的态度,最好为rm找一剂后悔药,trash-cli可以完美满足这个需求。废话不多说,使用yum install直接安装trash-cli,但是RHEL提示没有这个包, ...
我的上篇博文提到用extundelete恢复在Linux中误删的文件,本着防范于未然的态度,最好为rm找一剂后悔药,trash-cli可以完美满足这个需求。

废话不多说,使用yum install直接安装trash-cli,但是RHEL提示没有这个包,索性直接去github下载trash-cli的源代码安装:

[root@bogon edward]# unzip trash-cli-master.zip
[root@bogon edward]# cd trash-cli-master/
[root@bogon edward]# python setup.py install --record install.txt
安装很简单,不过trash-cli需要依赖python包,RHEL默认安装时自带了,如果没有的话用yum install python*安装就行了。虽然可以直接用命令行python setup.py install进行安装,但是setup.py没有uninstall选项,无法直接卸载,于是将安装中创建的文件记录在install.txt中,今后如果需要删除的话也会方便很多。

trash-cli安装完成后可以直接使用trash-put将文件放入回收站,为了兼容使用习惯,用shell脚本改写rm命令为trash-put就行了,编辑.bashrc加入:

alias rm!="/bin/rm -vi"
alias rm=trash
alias lstrash=trash-list
trash和trash-put貌似是一样的,因此用哪个关联rm都行,如果不经过回收站直接删除文件输入rm!命令就可以了,lstrash是为了方便列出回收站中的文件,每个文件都有删除日期和原路径,并且完全兼容图形界面的回收站。trash-cli中的所有命令:

[root@bogon bin]# ll | grep trash
-rwxr-xr-x    1 root root         127  5月 31 15:54 restore-trash
-rwxr-xr-x    1 root root         123  5月 31 15:54 trash
-rwxr-xr-x    1 root root         125  5月 31 15:54 trash-empty
-rwxr-xr-x    1 root root         124  5月 31 15:54 trash-list
-rwxr-xr-x    1 root root         123  5月 31 15:54 trash-put
-rwxr-xr-x    1 root root         122  5月 31 15:54 trash-rm
经过测试,trash支持递归删除目录,也就是实现rm -r的功能。使用restore-trash恢复回收站文件,终端会显示出回收站中的文件和编号,输入要还原的文件编号即可恢复,使用trash-empty清空回收站文件,无提示直接清空。命令说明可以使用参数--help查看。

ps:RHEL6中的回收站路径:

$HOME/.local/share/Trash
其中files目录保存已删除的文件,info目录保存已删除文件的信息。

ps:卸载python安装的软件包:

python setup.py install --record install.txt    # 安装时
cat install.txt | xargs rm -rf          # 卸载时
务必在程序源代码目录保留install.txt文件,才能使用上述命令卸载。

google还找出了一个作者编写用于Mac OS X上取代rm的脚本:原文链接

项目主页:https://gitcafe.com/bachue/rm-trash

参考资料(感谢原作者分享):
1、如何使用 trash-cli 逃出 rm 命令误删除重要文件的阴影
2、为rm命令增加回收站功能


开心

鄙视

鼓掌

愤怒

可怜

最新评论

返回顶部