ITPub博客

首页 > Linux操作系统 > Linux操作系统 > rm -rf 学习

rm -rf 学习

原创 Linux操作系统 作者:wffeige 时间:2017-02-16 15:55:19 0 删除 编辑

接触linux没多久,在学习过程中也了解linux中rm的作用和会导致的后果。可是在真实的工作中总会出现各样的问题。

  实例,rm的潜在风险。

  在一次执行脚本的过程中看到了不正常的情况。马上终止执行脚本查看自己的脚本文件,发现脚本文件以及工作文档都被删除了,欲哭无泪。不幸中的万幸重要的脚本还有备份。。。。

 查看脚本,找出了问题,所以给大家提醒一个使用rm的潜在风险,有的脚本中写了类似于rm rf ${abc}/*  这种写法,如果abc变量在某种情况下取不到值了,就会变成自动执行rm -rf /*  如果此时正好拥有root权限,那么后果将极其严重,因此建议大家使用rm时应该规范为:先对变量进行判断是否不为空 ,不为空再rm。 例如 [ -n "${abc}" ] && rm -rf ${abc}/* 。

[ -n "${abc}" ]#判断变量abc是否不为空,不为空则执行下一语句。

   解决问题:可以在自己的linux中加入一个回收站。

在~下 .bashrc或者.bash_profile加入
 
 
mkdir -p ~/.trash
alias rm=trash 
ash'

alias ur=undelfile
undelfile()
{
  mv -i ~/.trash/$@ ./
}
trash()
{
  mv $@ ~/.trash/
}
 
这是执行
rm 就相当于执行mv了
 
注:此时已经木有rm -rf了
 
删除的文件会在.trash中出现
 
可以恢复回去
 
 
ur filename
 
 
这就带来一个问题,如何删除回收站里的东西,这是后rm在这里是木有用的
在刚才.bashrc下继续加函数
 
 
cleartrash()
{
    read -p "clear sure?[n]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ]  && /usr/bin/rm -rf ~/.trash/*
}
 
$. .bashrc
然后,如果想清空回收站的话

$cleartrash就行了 
alias r=trash  
alias rl='ls ~/.tr

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31385999/viewspace-2133680/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-08-18

  • 博文量
    32
  • 访问量
    44789