一个删除文件夹下所有文件的shell脚本,不删除最外层的文件夹

最近,由于工作需要,写了一个删除文件夹下所有文件的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






你可能感兴趣的:(linux)