#常在河边走,哪有不湿了鞋 –亲眼目睹公司程序猿,从删裤到跑路。为了使自己避免掉入rm深渊,后来的我每天机器环境配置好后都妥善改良一下rm命令
1.话不多说,先来看最常用也是最简单适用的办法(借用mv命令来替换rm命令),然后定时清理垃圾站
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
1.在/home下建立你的垃圾站目录(这个目录最好放在磁盘剩余较多的分区,不要盲目) 2.在/opt/文件夹下建立个文件夹用来存放你的脚本 mkdir /opt/.local 3.建立一个脚本文件名字随你 本人 remove.sh #脚本内容 #!/bin/bash TRASH_DIR="/home/.trash" if [[ $1 = '-rf' || $1 = '-i' || $1 = '-r' || $1 = '-f' ]];then for i in ${@:2}; do dirname=`date --date='0 days ago' "+%Y-%m-%d-%H:%M:%S"` fileName=`basename $i` mv $i $TRASH_DIR/$fileName"_"$dirname done elif [ $# -eq 1 ];then for i in $@; do dirname=`date --date='0 days ago' "+%Y-%m-%d-%H:%M:%S"` fileName=`basename $i` mv $i $TRASH_DIR/$fileName"_"$dirname done else echo '你输入的是什么?' fi |
4. 修改~/.bashrc, 增加一行
1 2 3 |
alias rm="sh /opt/.local/remove.sh" #用我们自建的remove.sh替代rm命令 #刷新bashrc . ~/.bashrc |
5.设置定时任务定时清理回收站,你如果磁盘很足也可以不清理,或者半年清理一次,本人设置每天0点清理
1 2 |
#记住了这块清空垃圾站的rm命令一定要带上路径,否则就又掉上面那个脚本里面去了 0 0 * * * /bin/rm -rf /home/.trash/* |
测试
总结:这种方法还是有纰漏,如果用户调用shell绝对路径删除文件还是会没的,好在大家平时的习惯都是 rm 而不是 /bin/rm
- 本文固定链接: https://www.yoyoask.com/?p=364
- 转载请注明: shooter 于 SHOOTER 发表