从控制台计算特定类型文件的数量

时间:2017-08-04 08:17:39

标签: linux shell

我想从控制台计算一些xyz文件的数量。

我有这样的安排:

文件夹-A

文件夹-B

文件夹-C

所有这些文件都包含xyz个文件。

我需要命令来返回xyz个文件的数量及其位置。

例如:/ home / path / to / A 25;然后是B等等。

有可能吗?我在考虑使用find -name *.xyz,但不知道下一步该使用什么。

任何帮助?

3 个答案:

答案 0 :(得分:2)

find FolderA FolderB FolderC -type f -name '*.xyz' | wc -l
  • 。在哪里开始搜索(。 - 从当前目录)
  • 使用-type f仅包含文件(不包括链接或目录)。
  • wc -l表示“单词计数,仅限行数”。由于find将每行列出一个文件,因此返回它找到的文件数。

答案 1 :(得分:2)

for i in FolderA FolderB FolderC
do
    echo -n $i :
    find $i -type -f -name '*.yzx' | wc -l
done

这应该可以解决问题。

echo -n打印一行而不返回行,因此它应该打印如下内容:

Folder A: 17
Folder B: 0
Folder B: 4

答案 2 :(得分:0)

通过@tso调整解决方案:

for d in Folder-A Folder-B Folder-C
do
  find $d -type f -name '*.xyz'
done | wc -l

获取每个文件夹的单独计数:

for d in Folder-A Folder-B Folder-C
do
  echo $d $(find $d -type f -name '*.xyz' | wc -l)
done