Linux下删除文件不像Windows那样,删除文件放入回收站. 而是通过rm 命令删除文件.文件一般无法找回, 就是这种机制,每次带来的都是巨大的教训. 为此这里实现一个简易的回收站机制:
功能:
- rm 删除的文件备份到指定的文件夹
- 每天定时清理
步骤1
写个shell脚本替换rm命令,或者在需要删除文件的时候使用mv命令将文件移动到回收站。
-
家目录(~)新建一个隐藏文件夹: mkdir .trash
-
家目录(~)新建tool文件夹,存放remove.sh, 脚本内容如下 :
- 脚本主要是把文件根据当前日期重命名,移动到.trash
TRASH_DIR="~/.trash"
for i in $*; do
STAMP=`date +%m-%d-%H:%M:%S`
fileName=`basename $i`
mv $i $TRASH_DIR/$fileName.$STAMP
done
步骤2
实现rm 命令和remove.sh 脚本的绑定
- 修改~/.bashrc, 增加一行
alias rm="sh ~/tools/remove.sh"
- alias命令用来设置指令的别名,相当于执行rm,实际执行的是remove.sh
- source ~/.bashrc 使替换立即生效
步骤3
定时清空垃圾箱.trash, 通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本
- 编辑crontab文件中条目:
crontab -e
- 添加:
0 0 * * * rm -rf ~/.trash/*
.表示每天的0点0分删除 .tarsh文件中的内容
如果以上步骤感觉比较繁琐,有一个简单的方法,实现上面的基本功能.
safe-rm
safe-rm 是一个开源软件用来替代不太安全的rm,可以在/etc/safe-rm.conf中配置路径黑名单,定义哪些不能被safe-rm删除
- 不想删除文件写入/etc/safe-rm.conf, rm删除时会自动跳过
网友评论