1招搞定 rm -rf 带来的伤害

1招搞定 rm -rf 带来的伤害

Linux下删除文件不像Windows,删除的文件会放入回收站,一旦删除有误,可通过回收站找回.Linux下通过rm -rf命令删除文件,删除后文件一般无法找回, 就是这种机制,每次带来的都是巨大的教训.为此实现一个回收站机制,避免悲剧的发生.原理如下: 

  1. 重定向rm命令,并不真正执行删除操作,而将文件移动到一个特定目录

  2. 设置时间定时清除临时回收站

重定向命令

首先写shell脚本替换rm命令,或者在需要删除文件的时候使用mv命令将文件移动到回收站

  1. 家目录(~)新建一个隐藏文件夹: mkdir .trash

  2. 家目录(~)新建tool文件夹,存放remove.sh

  3. 脚本主要是把文件根据当前日期重命名,移动到.trash,实现如下

TRASH_DIR="~/.trash"  for i in $*; do    STAMP=`date +%m-%d-%H:%M:%S`    fileName=`basename $i`    mv $i $TRASH_DIR/$fileName.$STAMP  done4. 实现rm 命令和remove.sh 脚本的绑定修改~/.bashrc, 增加一行

4. 系统rm 命令和remove.sh 脚本的绑定,修改~/.bashrc,增加一行

alias rm="sh ~/tools/remove.sh"
  • alias设置命令的别名,相当于执行rm,实际际执行remove.sh

  • source ~/.bashrc 使替换立即生效

定时清理

定时清空垃圾箱.trash, 通过crontab 命令,可以在固定的间隔时间执行指定的系统指令或 shell script脚本

执行crontab -e,添加

0 0 * * * rm -rf ~/.trash/*

  • 表示每天的0点0分删除 .tarsh文件中的内容


免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部