请选择 进入手机版 | 继续访问电脑版

悟空网赚论坛_国内最大的手机网络赚钱项目资源兼职交流论坛分享平台

 找回密码
 立即注册
查看: 199|回复: 0

如何优雅地使用 rm 防止误删除?

[复制链接]

0

主题

0

帖子

0

积分

超级版主

Rank: 8Rank: 8

积分
0
发表于 2019-1-11 04:51:10 | 显示全部楼层 |阅读模式
  IT 界的有一个老梗,一次某论坛的数据库管理员抱怨自己老板一直虐待他,结果他一气之下就删库跑路了......
  于是...
  据新华社北京 8 月 20 日电 ,北京一软件工程师徐某离职后因公司未能如期结清工资,便利用其在所设计的网站中安插的后门文件将网站源代码全部删除。记者 20 日从北京市丰台区人民法院获悉,徐某破坏计算机信息系统罪成立,获刑五年。
  我在服务器维护的时候不小心执行了rm -rf命令......现在整台服务器被我删光了肿么办???
  好吧,现在先来介绍一下rm。
  rm -rf 的威力
  rm是 linux 系统下删除文件的命令,-r代表删除这个下面的一切,一切的一切那种的一切。f表示不需要用户确认,直接执行。
  通常这个命令都是指定文件夹用的,比如
  rm -rf /home/test/
  就是删除 /home/test/ 这个文件夹下面的所有东西。
  但是如果后面的文件夹路径没有加对,
  rm -rf /在服务器上也就意味着...
  俗话说的好:常在河边走, 哪能不湿鞋。 那该怎么避免这种悲剧的发生呢?
  如何避免再次跑路?
  一个方案就是重定向rm命令以嫁接为mv命令, 相当于给 Linux 系统定制了一个回收站。
  实现方式如下:
  ### 重定义rm命令 ###
  # 定义回收站目录
  trash_path='~/.trash'
  # 判断 $trash_path 定义的文件是否存在,如果不存在,那么就创建 $trash_path.
  if [ ! -d $trash_path ]; then
  mkdir -p $trash_path
  fi
  # 定义别名:使用 rm 就调用 trash
  alias rm=trash
  # 使用 rl 就调用 'ls ~/.trash'
  # 如果更改上面的回收站目录这里的目录也需要修改
  alias rl='ls ~/.trash'
  # 使用 unrm 就调用 restorefile,需要在删除目录的父目录下执行
  alias unrm=restorefile
  # 使用 rmtrash 就调用 claearteash
  alias rmtrash=cleartrash
  # 恢复文件的函数
  restorefile()
  {
  mv -i ~/.trash/$@ ./
  }
  # 删除文件的函数
  trash()
  {
  mv $@ ~/.trash/
  }
  # 清空回收站的函数
  cleartrash()
  {
  read -p 确定要清空回收站吗?[y/n] confirm
  [ $confirm == 'y' ] || [ $confirm == 'Y' ] /bin/rm -rf ~/.trash/*
  }
  最后将上述脚本写入/etc/bashrc,并立即执行命令source /etc/bashrc即刻生效。
  使用
  这个脚本定义了几个命令:
  rl:查看回收站下的文件
  unrm 文件名或目录:恢复到当前的路径下
  rmtrash:清空回收站,不过会友好提示。执行 rm 不会真正删除,而是使用 mv 移动到我们指定的回收站。
  实在真的想删除可以/bin/rm来进行删除。
  另外,需要注意的时,之前rm指令的一些参数可能不再使用,因为rm现在其实是mv了。
  # touch hoxistest
  # touch 1
  # mkdir haha
  # ls
  1 haha hoxistest
  # rm 1
  # ls
  haha hoxistest
  # 查看回收站文件
  # rl
  1 myftp1
  # 恢复已删除文件
  # unrm 1
  [root@CESHI-CLM-10-254-4-48 test]# ls
  1 haha hoxistest
  # rm haha/
  # rm hoxistest
  # rl
  haha hoxistest
  # 情况回收站
  # rmtrash
  确定要清空回收站吗?[y/n]y
  # rl
  效果看着应该还可以吧。
  例行总结
  看着是还可以,但是也有一些问题,比如删除文件不能重名,若重名了会提示你是否进行覆盖。那就需要再进行特殊处理了,比如删除时加个时间戳什么的,有兴趣的动手实现下吧。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|悟空网赚 ( 皖ICP备05011574号-1

GMT+8, 2019-1-24 16:26 , Processed in 0.169176 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表