shell 批量删除非指定的文件和空文件夹(包括子文件夹)

#!/bin/bash
path="/www/wwwroot/www.qianduan.ccc"

function search_file(){
   for file in `ls $1`
      do
          if [ -d $1"/"$file ];then
              search_file $1"/"$file
          else
              if [ "${file##*.}"x != "js"x ] && [ "${file##*.}"x != "html"x ] && [ "${file##*.}"x != "css"x ];then
                  echo "删除文件$1/$file 成功"
                  rm -f $1"/"$file
              fi
          fi
      done
}

function del_dir(){
   for dir_name in `ls $1`
   do
      if [ -d $1"/"$dir_name ];then
         if [ "$(ls -A $1/$dir_name)" ];then
             del_dir $1"/"$dir_name
         else
             rm -rf $1"/"$dir_name
             echo "删除文件夹 $1/$dir_name 成功"
         fi
      fi
   done
}
search_file ${path}
del_dir ${path}

特别注意:执行代码前一定要备份文件!!

空文件夹只能删除最后一层,多层还不知道怎么删,除非执行多次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值