第一步
说明
只需把这个脚本按自己的情况修改一下就可以使用
需要赋予脚本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 条评论