微信扫一扫 分享朋友圈

已有 749 人浏览分享

开启左侧

Linux彻底清理空文件夹教程

[复制链接]
749 0
以下是我实现的shell脚本,自测没有发现异常。
#!/bin/bash
delete_empty_dirs_once(){
  local dirPath=$1

  if [ ! -d "${dirPath}" ]; then
      echo  "文件夹不存在:${dirPath}"
      return 0
  fi

  local lsStrInDEDO=$(ls -a "${dirPath}")
  local arrayInDEDO=(${lsStrInDEDO})

  if [  ${#arrayInDEDO[@]} -le 2 ]; then
      rm -rf "${dirPath}"
      echo "删除空文件夹:${dirPath}"
      echo "${dirPath}" >>empty_dirs.txt
      emptyDirNumForOnce=$(($emptyDirNumForOnce+1))
      emptyDirNumForAll=$(($emptyDirNumForAll+1))
      return 1
  else
      local flag=0
      for item in "${arrayInDEDO[@]}";do
        local itemPath="${dirPath}/${item}"
        if [ "$item" != "."  ] && [ "$item" != ".." ] && [ -d "${itemPath}"  ]; then
            delete_empty_dirs_once "${dirPath}/${item}"
            if [ $? -eq 1  ]; then
                flag=1
            fi
        fi
      done
      return $flag
  fi
}

delete_empty_dirs(){
  local topDirPath=$1
  if [ ! -d "${topDirPath}" ]; then
      return 1
  fi
  emptyDirNumForAll=0
  deleteTime=0
  local  flag=1
  while [ $flag -eq  1 ]; do
    emptyDirNumForOnce=0
    deleteTime=$(($deleteTime+1))
    delete_empty_dirs_once "${topDirPath}"
    flag=$?
    echo "第${deleteTime}轮清理,删除了${emptyDirNumForOnce}个空文件夹。"
  done
  echo "进行了${deleteTime}轮清理,总共删除了${emptyDirNumForAll}个空文件夹。"

}

delete_empty_dirs "$1"


使用方法
在需要Linux中,将代码通过vim或者cat写入到一个shell脚本文件,如clean.sh,并通过chmod +x赋予该文件可执行权限,然后通过./<脚本文件名> <待清理的路径>执行清理任务 。例如./clean.sh /root/geoscene/geoscene ,注意路径的最后不要带/。
测试效果
本文的脚本会统计最后删除了多少个空文件夹,并将全部的删除记录打印到控制台,同时将删除文件清单输出到脚本所在文件夹下的output.txt文件中。

image.png

免责声明:
1,海欣资源网所发布的资源由网友上传和分享,不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
2,海欣资源网的资源来源于网友分享,仅限用于学习交流和测试研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3,海欣资源网所发布的资源由网友上传和分享,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
4,如果您喜欢,请支持正版,购买正版,得到更好的正版服务,如有侵权,请联系我们删除并予以真诚的道歉,联系方式邮箱 haixinst@qq.com
海欣资源-企业信息化分享平台。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

2

粉丝

20

主题
热度排行
回复排行
最新贴子

Archiver|手机版|海欣资源 ( 湘ICP备2021008090号-1 )|网站地图

GMT+8, 2024-6-18 22:31 , Gzip On, MemCached On.

免责声明:本站所发布的资源和文章均来自网络,仅限用于学习交流和测试研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 如果您喜欢,请支持正版,购买正版,得到更好的正版服务,如有侵权,请联系我们删除并予以真诚的道歉。