1. 程式人生 > >Shell指令碼統計指定目錄下子目錄中的檔案個數

Shell指令碼統計指定目錄下子目錄中的檔案個數

#!/bin/bash
function usage(){
    echo ""
    echo "introduction: count of files subdir of source dir to save file.txt with [[subdir] [number of files]"
    echo "subdir_files_count: usage: bash subdir_files_count -s [source dir] -o [output file ]"
    exit 1
}
while getopts "s:o:" arg #選項後面的冒號表示該選項需要引數
do
    case $arg in
         s)
            source="$OPTARG" #引數存在$OPTARG中
            ;;
         o)
            output="$OPTARG"
            ;;
         ?)  #當有不認識的選項的時候arg為?
            echo "unkonw argument"
            usage
            ;;
    esac
done
if [ -z $source ]
then
    usage
fi


if test ! -d $source
then
    echo "$source not exists!"
    exit 1
fi


dir_list=`ls $source | sort`
for sub_dir in $dir_list
do
if test -d "$source/$sub_dir"
then
fcout=`ls $source/$sub_dir | wc -l`
echo "$sub_dir $fcout" >> $output
fi
done