(unix)如何使用循环编写脚本来计算目录中的文件数

时间:2017-06-06 17:54:10

标签: bash unix

如何使用循环创建bash脚本来计算目录中的文件数。

脚本应该采用目标目录并输出:::

中的文件数

3 个答案:

答案 0 :(得分:1)

#!/bin/bash

counter=0

if [ ! -d "$1" ]
  then
    printf "%s\n" " $1 is not a directory"
    exit 0
fi

directory="$1"
number="${directory##*/}"
number=${#number}

if [ $number -gt 0 ]
  then
    directory="$directory/"
fi

for line in ${directory}*
  do
    if [ -d "$line" ]
       then
         continue
       else
         counter=$(( $counter + 1))
    fi
  done
printf "%s\n" "Number of files in $directory :: $counter"

答案 1 :(得分:1)

我会使用(GNU)findwc

find /path/to/dir -maxdepth 1 -type f -printf '.' | wc -c

上面的find命令为目录中的每个文件打印一个点,wc -c计算这些点。这适用于文件名中任何类型的特殊字符(包括空格和换行符)。

答案 2 :(得分:0)

你真的不需要循环。以下将计算目录中的文件:

files=($(ls $1))
echo ${#files[@]}