最近,由于工作需要,写了一个删除文件夹下所有文件的shell脚本,代码比较丑陋,但是可用,哈哈。centos7下亲测可用。该脚本只删除父文件夹下的所有文件和子文件夹,但不删除父文件夹本身。
这个shell脚本文件名是:clearFile.sh。内容是:
#! /bin/bash
function clearFile(){
if [`$1 -eq 'logs'` -o `$1 -eq 'log'`]; then
echo "clearFile can be called"
for file in `ls $1`
do
if [ -d $1"/"$file ]; then
echo "deleting directory: " $1"/"$file
rm -rf $1"/"$file
else
echo "deleting file: " $1"/"$file
rm -rf $1"/"$file
fi
done
else
echo "clearFile cannot be called!!!, the dir name is: "$1
fi
}
runPath=$(cd `dirname $0`;pwd)
echo "the script is located in directory :" $runPath
clearFile $1
将该shell脚本复制到centos中指定目录之后,使用如下命令赋予可执行权限:
chmod 777 clearFile.sh
然后就可以愉快使用了,假如要删除logs目录下的所有日志文件。执行如下命令即可:
./clearFile.sh logs
不过,为了安全起见,该脚本允许清空内容的文件夹名字只能是logs或者log,也即只对如下两个调用生效。有需要的可以自己稍作修改。
./clearFile.sh logs 或者 ./clearFile.sh log