检查unix目录中特定格式的文件计数

检查unix目录中特定格式的文件计数

我想知道特定格式的文件计数,例如。TXT在特定目录中

答案1

您可以从该目录执行以下操作:

files=( *.txt )
echo "${#files[@]}"

答案2

您还可以使用:

ls -l *.txt | wc -l

答案3

一种可移植的方法,它还可以处理奇怪的文件名(例如其中包含换行符)、点文件(文件名以 开头.)和其他特殊字符,例如引号(仅限当前目录):

find -maxdepth 1 -type f -iname "*.txt" -print0 | tr -cd '\0' | wc -c

或者递归地(不带-maxdepth),也会计算子目录中的文件:

find -type f -iname "*.txt" -print0 | tr -cd '\0' | wc -c

解释:

  • -maxdepth 1仅在当前目录中搜索,不要深入到子目录。
  • -type f仅搜索常规文件。
  • -iname "*.txt"搜索以 txt 结尾的文件,不区分大小写。
  • -print0这是重要的部分,用空字节字符分隔列表
  • tr -cd '\0'删除除空字节字符之外的所有内容。
  • wc -c计算字符数(现在是文件数)

答案4

你可以这样做:

ls /path/to/directory | grep ".txt$" | wc -l

如果您希望搜索包含子目录:

ls -lR /path/to/directory | grep ".txt$" | wc -l

其他方式是:

find . -name "*.txt" | wc -l

相关内容