小编Rap*_*ael的帖子

在遍历目录和文件夹时获取文件计数

recursiveprint() {
#FILES_COUNT=0

cd $1
  for d in *; do
    if [ -d "$d" ]; then
       (recursiveprint "$d")
    fi
    if [ -f "$d" ]; then
       file_name=$(basename "$d")
        ((FILES_COUNT++))
        clear
        echo  "$file_name"
        echo "total count = $FILES_COUNT"
    fi
    done
}
recursiveprint ${START_DIR}
Run Code Online (Sandbox Code Playgroud)

问题是,一旦它通过一个文件夹,它会在迭代另一个文件夹之前将计数设置为零。总共,我在不同的文件夹中有 30 个文件,计数最终为 6,即它遍历的最后一个文件夹中的文件数。有关如何解决此问题的任何提示?

shell bash

2
推荐指数
1
解决办法
93
查看次数

标签 统计

bash ×1

shell ×1