在linux在rm的使用频率很高,误删,错删的情况自然避免不了,本人就曾经在错误的目录下使用了 rm -rf ./* 命令 ,花了半天才把环境重新搭建好...... 所以建立一种可回退的机制就很有必要。
看了网上的介绍,整体的实现方式分为两种:
1.利用github上的项目 使用一个新的命令 trash去删除文件。
2.改写rm命令,利用mv命令移动文件or文件夹到指定的文件夹下,再定时删除。
很遗憾我看了几篇文章的git地址都下载不了,只能利用第二种方法自己实现。
利用mv命令也有两种实现方式:
1.改变rm的调用方式,让其不再调用/bin/rm 命令而是转而调用利用mv实现的删除函数
2.新建一个命令。
考虑到本身环境的其他脚本已经调用rm命令,可能会导致其他脚本运行出错,加上工作的环境多人在使用。这里我采用了方式2,新建一个rmm命令,避免不必要的麻烦。(真正的工作环境中推荐这种方式)
实现rmm命令的方式也有两种方式:
1.在根目录下创建一个 .myrm.sh 然后 alias rmm='sh /root/.myrm.sh'
2.将移动文件夹的函数trash()直接写入/etc/bashrc中,然后 alias rmm=trash
考虑到其他用户调用/root/.myrm.sh存在权限问题,这里值得一提的是就算采用第一方式 再chmod 777 /root/.myrm.sh也会存