替代RM命令的防误删工具TRASH-D
07/31
本文最后更新于
2024年07月31日,已超过
213天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
前言
最近好不容易写了几千行代码,突然担心起会不会发生源代码文件误删掉这件事来^-^
虽然使用了GIT进行管理,但没有上传到版本服务器,总感觉不保险,因此研究代替RM
命令的工具,将文件“删除”放入到所谓的回收站,而不是彻底的删除,即使误删了也能轻松恢复。
在网上找到几款软件,发现trash-cli
和trash-d
两款软件能够满足需求。但trash-cli
对于HPC多分区存储环境不太友好,最终选择了trash-d
这款工具。
安装
项目地址:https://github.com/rushsteve1/trash-d
官方在GITHUB中提供了rpm/deb等安装包。本人使用的机器平台是centos,没有管理员权限,只能安装在个人目录下,从rpm包中抽取可执行文件方式安装。
$ rpm2cpio trash-d-19-x86_64.rpm | cpio -idmv
$ mv usr trash-d
$ vi ~/.bashrc
export PATH=/path/to/trash-d/bin:$PATH
export MANPATH=/path/to/trash-d/share/man:$MANPATH
export TRASH_D_DIR=/path/to/Trash_dir # 指定回收站目录
alias rm=trash # 设置rm是trash别名
$ . ~/.bashrc
使用
查看MAN说明文档
$ man trash
由于使用alias别名设置,下面执行trash
命令地方都可以替换为rm
。
- 删除文件或目录
trash删除选项基本与rm
相同。
$ trash file # 删除文件
$ trash -r dir # 删除目录及文件
$ trash -rf dir # -f不显示提示并忽略错误
- 列出回收站删除的文件
$ trash --list
即使删除相同路径相同文件时,在回收站里名称会区分开来,比如删除两次test目录,第二次删除会添加一个后缀区别开来。
$ trash --list
Name Path Del. Date
test /home/user/TMP/test 2024-Feb-02 08:04:15
smaple /home/user/TMP/smaple 2024-Feb-02 08:12:30
test-4570 /home/user/TMP/test 2024-Feb-02 08:29:30
- 删除回收站中文件
$ trash --delete file
- 从回收站中恢复文件
$ trash --restore file
- 清空回收站
$ trash --empty
指定回收站目录
TRASH_D_DIR
用于指定回收站目录的环境变量。
XDG_DATA_HOME
FreeDesktop说明中用于确定默认回收站目录的环境变量,不建议使用它,可能会影响其它软件的正常使用。
回收站目录设置优先级:$TRASH_D_DIR
> $XDG_DATA_HOME/Trash
> ~/.local/share/Trash
。
友情提醒:在真正使用之前,最好做个测试确认正常工作!!!

