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

 

第一步

说明

 

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

需要赋予脚本777权限

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

 

 

 

第二步

shell脚本

 


#!/bin/bash

# Author Attitude
# Modify 2018/12/26

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

function rm()
{

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
						echo "最多只能跨6个目录删除"
						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 "删除机制出错,请联系运维:江松泉-13502688385"
        else
		mv "$pr" "$Store"/"$time"/"$ps"."$timee" #1>&2 2>/dev/null
	        if [ ! -d $ps ];then
                	echo "已删除至回收站*如果意外删除,请及时联系运维:江松泉-13502688385"
	        else
        	        echo "删除文件失败*请检查文件/目录是否正在使用或联系运维:江松泉-13502688385"
	        fi
        fi
else
        mv "$pr" "$Store"/"$time"/"$ps"."$timee" #1>&2 2>/dev/null
	if [ ! -d $ps ];then
		echo "已删除至回收站,如果意外删除,请及时联系运维:江松泉-13502688385"
	else
               	echo "删除文件失败,请检查文件/目录是否正在使用或联系运维:江松泉-13502688385"
       	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
}

case $1 in
	-rf)
	rm;;
	-fr)
	rm;;
	-r)
	rm;;
	-f)
	rm;;
	*)
	echo -e "\033[0;31m Usage: \033[0m  \033[0;34m  rm的选项只能填写 {-rf|-fr|-r|-f} \033[0m"
esac

 

这脚本使用的时候是必须带选项的

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

 

 

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

 

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

发表评论:

共有 0 条评论

 Top