• linux中的回收站机制,防止rm -rf 事件


    下文中的配置文件:config.txt
    mkdir -p ~/.trash
    alias rm=del
    del()
    {
    mv $@ ~/.trash/
    if [ $? -ne 0 ];then
    echo -e "33[31mPlease refer to the error:33[0m mv is rm alias. Please use command:33[31m rm filename 33[0m or 33[31m rm dirname 33[0m. The deleted item will be moved to33[31m ~/.trash33[0m To delete directly, Please use command:33[31m/bin/rm -rf filename 33[0m or 33[31m /bin/rm -rf dirname 33[0m"
    fi
    }
    cleardel()
    {
    read -p"clear sure? [Input 'y' or 'Y' to confirm. Input 'n' to cancel]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
    }

    ########################################################################################
    原理:就是将rm 别名到了mv中,只要是rm 删除的都移动到宿主目录中的统一目录下。
    #############这个文件是脚本文件,基本上不用修改,除非你的用户家目录没有设置在/home/目录中。
    #!/bin/bash
    # User:四道风
    # Email:1092335851@qq.com
    # Date: 201907
    echo -e "33[31m请根据提示来设置是否需要将用户配置回收站33[0m"
    echo -e "33[31m请按提示输入,请勿输入其他字符,否则脚本将自动退出33[0m"
    echo -e "33[31m配置完成后,如使回收站生效,请断开当前连接,重新连接(重新加载环境变量)33[0m"
    #列出系统可登陆用户
    users=`grep /bin/bash /etc/passwd | awk -F ":" '{print $1}' > ./user.txt`
    for U in `cat ./user.txt`
    do
    read -p "user is $U ,please input yes/YES or no/NO : " input
    if [[ $input == 'yes' || $input == 'YES' ]];then
    if [[ $U == 'root' ]];then
    grep "^del()" /root/.bashrc > /dev/null 2>&1
    if [ $? -eq 0 ];then
    echo -e "33[31m/root/.bashrc33[0m .The del function already exists.Trach already exists.Automatic jump out"
    continue
    fi
    if [ $? -eq 0 ];then
    sed -i "s/alias rm='rm -i'/#alias rm='rm -i'/" /root/.bashrc > /dev/null 2>&1 && cat ./config.txt >> /root/.bashrc && echo "A recycle bin has been set up,The relogin will take effect! ! ! " && source /root/.bashrc
    else
    echo "/root/.bashrc is not:(alisa rm='rm -i')"
    egrep -v '^$|^#' /root/.bashrc > /root/.bashrc > /dev/null 2>&1
    cat ./config.txt >> /root/.bashrc && echo "A recycle bin has been set up,The relogin will take effect! ! ! " && source /root/.bashrc
    fi
    else
    grep "^del()" /home/$U/.bashrc > /dev/null 2>&1
    if [ $? -eq 0 ];then
    echo -e "33[31m/home/$U/.bashrc33[0m .The del function already existsi.Trach already exists .Automatic jump out"
    continue
    fi
    #mkdir -p /home/$U/.trash
    if [ $? -eq 0 ];then
    sed -i "s/alias rm='rm -i'/#alias rm='rm -i'/" /home/$U/.bashrc > /dev/null 2>&1 && cat ./config.txt >> /home/$U/.bashrc && echo "A recycle bin has been set up,The relogin will take effect! ! ! " && source /home/$U/.bashrc
    else
    echo "$U is not (alias rm='rm -i')"
    egrep -v '^$|^#' /home/$U/.bashrc > /home/$U/.bashrc > /dev/null 2>&1
    cat ./config.txt >> /home/$U/.bashrc && echo "A recycle bin has been set up,The relogin will take effect ! ! ! " && source /home/$U/.bashrc
    fi
    fi
    elif
    [[ $input == 'no' || $input == 'NO' ]];then
    continue
    else
    echo -e "Please enter 33[31m[ no | NO | yes | YES ]33[0m please do not enter other, otherwise it will exit the script directly."
    break
    fi

    done

    我的目标是每天厉害一点点
  • 相关阅读:
    创建子类
    SQL优化之一则MySQL中的DELETE、UPDATE 子查询的锁机制失效案例
    linux下报错:error while loading shared libraries
    linux下报错:error while loading shared libraries
    iterm2终端manpage高亮显示
    iterm2终端manpage高亮显示
    iterm2终端manpage高亮显示
    iterm2终端manpage高亮显示
    rabbitmq文章源
    rabbitmq文章源
  • 原文地址:https://www.cnblogs.com/sidaofeng/p/11130992.html
Copyright © 2020-2023  润新知