shell 脚本 --- linux回收站脚本之一

 

第一步

说明

 

只需把这个脚本按自己的情况修改一下就可以使用

需要赋予脚本777权限

需要用这脚本,代替/bin/rm脚本

 

 

 

第二步

shell脚本

 

#!/bin/bash

# Author Attitude
# Modify 2018/12/26

if [ "$2" = -rf ];
then
    echo -e "\033[0;31m 请无需使用选项,直接:rm $3\033[0m  "
    exit 1
fi

if [ "$2" = -fr ];
then
    echo -e "\033[0;31m 请无需使用选项,直接:rm $3\033[0m  "
    exit 1
fi

if [ "$2" = -r ];
then
    echo -e "\033[0;31m 请无需使用选项,直接:rm $3\033[0m  "
    exit 1
fi

if [ "$2" = -f ];
then
    echo -e "\033[0;31m 请无需使用选项,直接:rm $3\033[0m  "
    exit 1
fi

pw=$2
pq=${pw: -1}
p=/
if [ $pq == $p ]
then
	echo $pw > /dev/null
else
	pw=$pw/
fi

pa=$(echo $pw | grep -o / | wc -l)

if [ $pa -le 1 ]
then
	pr=$(echo $pw | cut -d "/" -f 1,100)
	ps=$(echo $pw | cut -d "/" -f 1,100)
else
	if [ $pa -le 2 ]
	then
		pr=$(echo $pw | cut -d "/" -f 1,2,100)
		ps=$(echo $pw | cut -d "/" -f 2,100)
	else
		if [ $pa -le 3 ]
		then
			pr=$(echo $pw | cut -d "/" -f 1,2,3,100)
			ps=$(echo $pw | cut -d "/" -f 3,100)
		else
			if [ $pa -le 4 ]
			then
				pr=$(echo $pw | cut -d "/" -f 1,2,3,4,100)
				ps=$(echo $pw | cut -d "/" -f 4,100)
			else
				if [ $pa -le 5 ]
				then
					pr=$(echo $pw | cut -d "/" -f 1,2,3,4,5,100)
					ps=$(echo $pw | cut -d "/" -f 5,100)
				else
					if [ $pa -le 6 ]
					then
						pr=$(echo $pw | cut -d "/" -f 1,2,3,4,5,6,100)
						ps=$(echo $pw | cut -d "/" -f 6,100)
					else
						exit
					fi
				fi
			fi
		fi
	fi
fi

Store=/tmp/.rm
time=$(date +%Y-%m-%d)
timee=$(date +%Y-%m.%d-%H:%M:%S)

if [ ! -d $Store ]
then
	mkdir "$Store"
	chmod 777 "$Store"
fi

if [ ! -d "$Store"/"$time" ]
then
        mkdir ${Store}/${time}
	chmod 777 ${Store}/${time}

        if [ ! -d "$Store"/"$time" ]
        then
                echo "删除机制出错,请联系运维:***-***********"
        else
		mv "$pr" "$Store"/"$time"/"$ps"."$timee" #1>&2 2>/dev/null
	        if [ ! -d $ps ]
        	then
                	echo "已删除至回收站*如果意外删除,请及时联系运维:***-***********"
	        else
        	        echo "删除文件失败*请检查文件/目录是否正在使用或联系运维:***-***********"
	        fi
        fi
else
        mv "$pr" "$Store"/"$time"/"$ps"."$timee" #1>&2 2>/dev/null
	if [ ! -d $ps ]
	then
		echo "已删除至回收站,如果意外删除,请及时联系运维:***-***********"
	else
               	echo "删除文件失败,请检查文件/目录是否正在使用或联系运维:***-***********"
       	fi

fi

##删除

pash=/tmp/.rm/

quantity=$(ls "$pash" | wc -l)
while [ $quantity -gt 3 ]
do
        que=$(ls "$pash" | sed -n 1p)
        /root/.rm -rf "$pash""$que"
        quantity=$(ls "$pash" | wc -l)
done

 

 

这脚本使用的时候是不能带选项的

如果想要可以带选项的rm脚本,可以自己修改一下,也可以参考linux回收站脚本之二

 

 

 

 

shell大神看看别喷,本人还是菜鸟一员

 

 

转载请注明原文链接:shell 脚本 --- linux回收站脚本之一

发表评论:

共有 0 条评论

 Top