edwardcmh

人氣不過肥皂泡

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

我的上篇博文提到用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命令增加回收站功能

posted on 2013-05-31 18:06  edwardcmh  阅读(1511)  评论(0编辑  收藏  举报