编写rm方法来代替rm命令

因为rm -rf /* 较为危险,所以可以编写一个rm方法来代替rm命令

vim /etc/profile.d/rm.sh

在rm.sh输入如下代码

  1 #!/bin/bash
  2 function rm(){
  3         [ -d /dustbin ] || mkdir /dustbin;#检查/下是否有dustbin目录,没有则创建
  4         var=$@  #获取所有参数,$1是参数1,$2是参数2,$@所有参数
  5         echo ${var}
  6         var=${var/-i -rf/}      #把参数中的-i -rf字符替换为空
  7         echo ${var}
  8         /bin/mv -f ${var} /dustbin; #-f有相同文件名,覆盖前不询问
  9 }
 10 export -f rm   #导出rm方法,使其可以被子shell继承

export -f function_name 导出方法后,子shell运行的脚本可以继承方法

接下来赋予该文件执行权限,并重新生效该文件

chmod +x /etc/profile.d/rm.sh  #赋予该脚本执行权限
. /etc/profile.d/rm.sh  #用source或 . 重新使该脚本生效

此时使用 rm -rf /tmp/a.txt ,则会把a.txt 移动至/dustbin文件夹中

因为使用rm命令会被rm方法替代,因为同名方法优先级比同名命令高

如果想使用rm命令,则需要前置command

例如 command rm -rf /tmp/a.txt

如果此时执行 rm -rf /*  则变为执行 mv /*  /dustbin,会把动态链接库文件移动至/dustbin目录下,导致出现问题

解决方法在此链接 https://blog.csdn.net/workey/article/details/107225078

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值