Shell脚本递归输出文件大小及路径----支持带空格文件名

#!/bin/sh


DEF_ROOT_DIR=`pwd`


if [ -z $1 ]; then
    input_dir=*
else
    input_dir=$1
fi

file_cnt=0

listfile()
{
    local var_path_dir=$1
    local ii=0
    #echo "var_dir=${var_dir}"

    for var in `ls ${var_path_dir} | tr " " "\?"`
    do
        #echo "var[${ii}]=${var}"
        element=`echo ${var} | tr "\?" " "`
        #echo "element=${element}"
        if [ -d "${var_path_dir}"/"${element}" ]; then
            #echo "${var} is dir"
            #var=`echo ${var} | tr "\?" " "`
            #echo "${var} is dir"
            listfile "${var_path_dir}"/"${var}"
        else
            #echo "${var_path_dir}/${var}"
            var_size=`du ${var_path_dir}/${var} | awk '{print $1}'`
            #var=`tr "\?" " " <<<${var}`
            #var=`echo ${var} | tr "\?" " "`
            var_path=`echo ${var_path_dir}/${var} | tr "\?" " "`
            echo "${var_size}    ${var_path}"
            let file_cnt++
        fi
        let ii++
    done
}


#listfile ${DEF_ROOT_DIR}/${input_dir}
listfile ./${input_dir}
echo "total file ${file_cnt}"

发布了35 篇原创文章 · 获赞 2 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/ivansuntech/article/details/95484049