工作中遇到过日志文件夹里面存放的日志数量太多,直接使用rm -rf 删除提示参数太多,其实是因为要删除的文件太多,没法一次全部删除,具体rm -rf能够一次删除的数量是多少就不知道了,为了解决这个问题,写了个脚本,循环一个个删除。
需要指定要删除的路径和要删除文件的开头,因为一般日志的开头是一样的,可以防止误删除其他文件。
echo "该脚本是要删除指定文件夹下指定字符开头的文件,请注意安全使用"
#for dirtory in $(ls /home/weiwei/test_shell/test)
#do
# echo "删除 $dirtory"
# rm -rf $dirtory
#done
#read -p "输入要删除的文件夹路径: " path
if read -t 10 -p "请输入要删除的文件夹路径: " path
then
echo "要删除的文件夹是: $path "
else
echo
echo "超时了,退出"
exit
fi
if [ "$path" == '' ]
then
echo "输入的路径是空,退出"
exit
fi
#if read -t 5 -p "你确定要清空文件夹 $path 中的所有内容吗?(y/n) " answer
#then
# if [ $answer -eq "y" ]
if [ -d $path ]
then
echo "要删除的路径存在"
else
echo "要删除的文件夹不存在,退出"
exit
fi
#echo "开始删除"
read -p "要删除文件的名称前缀: " beginname
if read -t 5 -p "你确定要删除文件夹 $path 下以 $beginname 开头的文件吗?(y/n): " answer
then
# if [ "$answer" == "y" ]
case $answer in
Y|y)
# then
len=${#beginname}
for file in $path/*
do
echo "This is : $file"
name=$(basename $file)
echo "name: $name"
echo ${name:0:$len}
if [[ ${name:0:$len} == $beginname ]]
then
echo " $file 以 $beginname 开头,删除他.. $file"
rm -rf $file
else
echo " $file 不是以 $beginname 开头,不删除他"
fi
done
;;
#else
*)
echo "你没有回答yes,退出"
exit
;;
#fi
esac
else
echo "输入超时,退出"
exit
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)