写了一个遍历文件目录的Linux/Unix Shell脚本

文章目录

      • 1 摘要
      • 2 脚本代码
      • 3 推荐参考文档

1 摘要

在整理文档的时候,通常需要有遍历文件目录的需要,作者从网上找了一些遍历文件目录的脚本,发现有一些问题,无法满足作者的需求,于是自己在其基础上做了一些修改,适配了包含空格的文件目录

2 脚本代码

folder_traverser.sh
#! /bin/bash 

## 目录遍历工具,同时过滤小于一定尺寸的文件
## 支持包含空格的文件目录  
## 可根据需要进行改装

## 目标文件目录
fileDir=/Users/ljq/Downloads/
## 文件最小尺寸(单位:kb)  
minSize=100
## (符合筛选条件的)文件总数
countFile=0
## 临时文件目录
tmpFilePath=

function readAndSelect() {
	for file in `ls "$*" | tr " " "\?"`       
    do
        file=`tr "\?" " " <<<${file}`
        tmpFilePath=$1/${file}
        if [ -d "${tmpFilePath}" ]; then
            readAndSelect "${tmpFilePath}"
        else
            fileSize=`wc -c "${tmpFilePath}" | awk '{print $1}'`
            fileSize=$[${fileSize}/1024]
            ## lt 小于,gt 大于
            if [ ${fileSize} -lt ${minSize} ]; then
                ## todo something
                
                ## eg: echo ${tmpFilePath}
                ## rm -rf "${tmpFilePath}"
            else
                ## todo something

                echo ${tmpFilePath}
                countFile=$[${countFile}+1]
            fi    
        fi
    done
}

readAndSelect ${fileDir}

echo ${countFile}

该脚本仅作为参考模板,用户可以根据自己的需求进行修改

3 推荐参考文档

使用Shell遍历目录及其子目录中的所有文件

shell中判断文件大小是否超过指定大小

解决shell脚本遍历带空格的文件/文件夹名

你可能感兴趣的:(Linux)