rmm 一个替换rm 的工具
项目地址:https://gitee.com/jerry323/rmm
欢迎pull request
起因:
在执行rm命令的时候,有时会因为动作太快,开不及思考,而删除一些重要的文件,此时再找回就很难了。
rmm
rmm是一个用于替换rm命令的命令行工具。
将rm命令替换为mv命令,会在$HOME路径下新建一个.trash目录,将执行rmm命令后会将删除的文件mv到.trash下,做到假删除的目的,必要的时候可以恢复或者调用rm永久删除。
.trash
- .trash路径
在.trash目录下,会新建一个以日期命名的文件夹,存放当日删除的文件。例如20200418,在该目录下,会有removelog和restorelog两个系统文件,用于记录和恢复被删除的文件。
如:
└── 20200418
├── 18_40_00_066892185_test
├── 18_40_00_076467961_test1
├── 18_40_00_079269798_test2
├── removelog
└── restorelog
被删除的文件是test、test1、test2,在trash路径下会以“小时_分_秒_时间戳_文件名”的格式保存。
- removelog
看一下removelog里面是些啥:
/home/***/test /home/***/.trash/20200418/18_40_00_066892185_test
/home/***/test1 /home/***/.trash/20200418/18_40_00_076467961_test1
/home/***/test2 /home/***/.trash/20200418/18_40_00_079269798_test2
log里记录了被删除文件的原始路径和被删除文件在trash下的路径。当文件被恢复时,则对应的条目会被删除。
- restorelog
restorelog则是记录的文件恢复的情况,只有当恢复了文件时,这个log才会被写入,目前仅用于记录。
rmm命令
- 删除
touch 111
mkdir 222
rmm 111 222 #会“删除”111 和 222
- 恢复
rmm -b #列出可恢复项
#eg.
#20200402:
# -- /home/xxxx/bin/111 --> 20200402/15_45_03_641013526_111
# -- /home/xxxx/bin/222 --> 20200402/15_45_03_651633533_222
# restore: 20200402/15_45_03_651633533_222 #这个是需要输入的
#Restore 20200402/15_45_03_651633533_222 --> /home/xxxx/bin/222
#此时恢复了222文件
- 更多的命令
rmm -s #展示所有可恢复的文件
rmm --version #显示版本号
rmm -d #永久删除