避免rm 的巨大伤害

一、原因:

今天测试时不小心把家目录里的好多东西删掉了,辛亏有备份,写好的好多脚本才没有丢
本来定义的有别名 
alias rm="mv -t /app/tmp"        
   -t :调换 源 和 目的 的参数位置
 可是在脚本里执行的rm 不支持别名,就删错了

二、思路:

1. 写一个脚本,名字是 rm ,把路径放在PATH的最前面
        把 /app/tmp 当作是回收站
2. 删除 alias rm=“rm -i”

三、过程

1. 脚本


#!/bin/bash
# ------------------------------------------
# Filename: rm   
# Date:    2017-09-15    
# Revision:   
# Author: 木子甘
# stdentID:16    
# Description: 避免rm的巨大伤害,使删除的东西在回收站 
# ------------------------------------------
#检查有没有参数
f_args (){
        [ $# -eq 0 ] &&{ echo "missing operand" ; return 1; } || return 0 
}
#检查文件是否存在
f_arg (){
        [ -e $1 ] ||{ echo "cannot remove ‘b.sh’: No such file or directory"; return 1; }
}
#mv
f_rm (){
        mv -t /app/tmp $1
}
#主程序
f_args $@ 
[ $? -ne 0 ] &&exit 1
while [ $# -ne 0 ] ; do
        f_arg $1 
        [ $? -ne 0 ] &&{ shift; continue; }
        f_rm $1
        [ $? -ne 0 ] &&{ shift; continue; }
        shift
done

2. 修改PATH变量

    在/etc/profile.d/newvar.sh 里面写上
        PATH=$HOME/bin:$PATH

四、测试

1.脚本中测试

[root@localhost ~/bin]# vim test.sh
#!/bin/bash
which rm
bash -x rm /app/tmp/a.sh

结果是:这里写图片描述

2.命令行测试

[root@localhost ~/bin]# which rm
/root/bin/rm

五、成功!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值