首页 » Linux » 改写linux系统中“rm”命令防止误删文件

改写linux系统中“rm”命令防止误删文件

2016-04-18 11:10:50阅读(124)

今天在微信朋友圈看到一篇文章,标题是“rm -rf / 又引发了一个血案”,文章原文链接:http://www.cnbeta.com/articles/492731.htm。
看完之后我是深有感悟啊,我之前在操作linux系统的时候,当时是用的是root权限想删一个目录下的所有文件,我想敲的命令是“rm -rf ./”,就是因为敲的过快,少敲一个“.”,等我按下“enter”键的时候,已经来不及了,瞬间删掉了系统里面我知道的、不知道的所有东西。所幸的是,我操作的linux系统是我本地电脑用来学习的虚拟机,所以并不影响什么。
虽然并没影响什么,但通过这次事件后,以防万一,我必须解决这种可能存在的隐患。我想到了两个方案:一是以后能不使用root权限就不使用;二是将“rm”命令改下;
很多创业型小公司其实操作服务器都是直接用root权限的,主要是图方便、快捷,还有就是对linux系统并不是很懂,我就是。所以我这里教大家如果将“rm”命令改头换面一下。
大家都知道,在windows系统中有一个回收站的功能,就算你不小心删除了什么,是可以从回收站再次恢复回来,但linux是没有。所以,我们可以在linux中自己建立一个回收站的功能。
在linux系统的/root/.bash_profile文件中加入以下脚本:
# 自定义一个类似于回收站的功能
mkdir -p ~/.trash
alias rm=trash
alias r=trash
alias rl='ls ~/.trash'
alias ur=undelfile
alias cleartrash=cleartrash
undelfile()
{
  mv -i ~/.trash/$@ ./
}
trash()
{
  mv $@ ~/.trash/
}
cleartrash()
{
  read -p "clear sure?[n]" confirm
  [ $confirm == 'y' ] || [ $confirm == 'Y' ]  && /bin/rm -rf ~/.trash/*
}

其实,这里执行“rm”就相当于执行“mv”命令,此时你再执行“rm -rf”是不存在的,直接执行“rm [需要删除的文件或目录]”即可,所有删除的文件都在/root/.trash目录下。我们执行“cleartrash”命令是清除/root/.trash目录下所有文件。如果你非要想一次性删除一些文件,你可以执行“/bin/rm -rf”就行啦!
这样做的好处是,我们在快速敲命令的时候如果手误删除了一些重要文件,还是可以找回来的,减少我们的损失!

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹