一个关于rm -rf 的教训

本文通过一个实际案例介绍了 Linux 中 rm 命令的潜在风险,并提出了使用前进行变量检查的方法来避免误删重要文件。此外,还提供了一个在 Linux 系统中建立类似回收站功能的方法,以便误删文件后能够恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接触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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值