修改rm指令为mv到指定目录
2019-02-15 本文已影响0人
电脑配件
rm指令非常危险,被删除的文件想要找回要花费不小的力气,尤其是一些小的脚本之类的,找回花的功夫还不如重写,但是谁也不愿意重写啊!
rm -rf /* 后……
经过多次手贱删除checkpoint和一次手贱删掉好不容易改好的脚本让我终于意识到要养成良好的工作习惯!
可以修改rm为移动到一个目录,然后再用脚本定期清理这个目录。这样如果误删除了在下一次清理之前就有机会补救找回
对于PC,每晚都关机的话,可以使用系统的/tmp目录。因为/tmp目录在每次关机时系统都会自动清理里面的内容,这样也省去了定时任务的步骤。
具体的方法如下:
首先建立一个脚本remove.sh并编辑:
touch remove.sh
mkdir -p /tmp/delete
NOW=`date +%Y-%m-%d_%H:%M:%S`
for i in $*;
do
fileName=`basename $i`
mv -v $i /tmp/delete/$fileName.$NOW
done
这里是将要删除的文件(夹)移动到了/tmp/delete文件夹并输出提示
文件(夹)名字加入了删除时间的后缀防止了重名的出现
然后alias rm指令到我们写的remove.sh脚本,~/.bashrc中最后一行添加:
alias rm='sh ~/你的remove.sh的位置'
使环境变量立即生效:
source ~/.bashrc
如果是使用在服务器上,永不关机,就需要移动到指定的目录下,计划crontab定期清理了,比如:
crontab -e
最后一行添加:
0 3 * * * rm -rf /你的删除存放目录/*
表示每天凌晨3点定期清理指定目录下的文件
千万注意目录一定要写对!别一觉醒来,家没了……
这里不用担心rm被之前替换的问题,这里是系统调用rm指令,而我们的alias别名仅对用户自己的环境变量有效
大功告成,再也不怕误删文件了