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

下文中的配置文件:config.txt

mkdir -p ~/.trash

alias rm=del

del()

{

mv $@ ~/.trash/

if [ $? -ne 0 ];then

echo -e "\033[31mPlease refer to the error:\033[0m\nmv is rm alias. Please use command:\033[31m rm filename \033[0m or \033[31m rm dirname \033[0m. The deleted item will be moved to\033[31m ~/.trash\033[0m \nTo delete directly, Please use command:\033[31m/bin/rm -rf filename \033[0m or \033[31m /bin/rm -rf dirname \033[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 "\033[31m请根据提示来设置是否需要将用户配置回收站\033[0m"

echo -e "\033[31m请按提示输入,请勿输入其他字符,否则脚本将自动退出\033[0m"

echo -e "\033[31m配置完成后,如使回收站生效,请断开当前连接,重新连接(重新加载环境变量)\033[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 "\033[31m/root/.bashrc\033[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 "\033[31m/home/$U/.bashrc\033[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 \033[31m[ no | NO | yes | YES ]\033[0m \nplease do not enter other, otherwise it will exit the script directly."

break

fi

done

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值