linux中防止误删除

一.脚本执行过程:

1.在/bin/bash中创建4个模拟回收站机制的脚本:remove、undel、ctrash、lrm

2../bashrc中添加alias rm='remove'行.

二.脚本使用方法:

./undel.sh [-u] //直接执行undel.sh脚本将安装4个功能脚本,-u参数用于卸载

remove [files] //用于删除文件和目录,使用rm时自动执行该脚本,且不需要带-rf等参数

undel [-a] [files] //用于恢复文件或目录到当前目录,-a参数将恢复回收站的所有内容到当前目录

lrm //查看回收站的内容

ctrash //清空回收站

 

 

#/bin/bash
#-----------Copyright-----------
#bashname: undel.sh
#author  : Sandman
#Date    : 2012-05-29
#-------------------------------
cd /usr/bin
if [ "$1" == "-u" ] ;then
    if [ ! -e remove ];then echo "the script don't run!!!";exit;fi
    cp  ~/.bashrc ~/.bashrc_bak
    cat ~/.bashrc_bak|sed '/alias rm/d' >~/.bashrc       #delete line: alias rm='remove'
    echo "alias rm='rm -i'" >>~/.bashrc                  #add line: alias rm='rm -i'
    source ~/.bashrc
    rm ~/.bashrc_bak
    rm remove undel ctrash lrm                           #delete custom script
    echo "Unstall script successfully!!!"
    exit
fi

for var in remove undel ctrash lrm                      #exist script?
do
    if [ -e $var ]; then
        echo "The script is running!!!"
        exit
    fi
done
touch remove undel ctrash lrm                          #create script
chmod 755 remove undel ctrash lrm
echo '#/bin/bash' >remove                              #write script
echo '#/bin/bash' >undel
echo '#/bin/bash' >ctrash
echo '#/bin/bash' >lrm
echo 'mv -f $@ ~/.trash' >>remove
echo 'if [ $1 == "-a" ];then mv ~/.trash/* ./;else mv ~/.trash/$1 ./;fi' >>undel
echo 'rm -rf ~/trash' >>ctrash
echo 'mkdir ~/.trash'>>ctrash
echo 'ls ~/.trash' >>lrm

cp ~/.bashrc ~/.bashrc_bak
cat ~/.bashrc_bak|sed '/alias rm/d' >~/.bashrc #delete line: alias rm='rm -i'
echo "alias rm='remove'">>~/.bashrc #add line: alias rm='remove'
source ~/.bashrc
echo "script run successfully!!!!!!"



 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值