计算目录列表中的文件

nel*_*aro 2 linux bash find pipe

我有一个包含目录列表的文件,我想知道每个目录中有多少文件。

.../图像/idsuffix/userids/

这将为我提供前 5 个目录而不是每个目录的文件和目录数。

找到 ./images/00{0..5}/ | 厕所

我想要的是每个目录的内容计数。我试图通过 xargs 传递它,但做同样的事情并为所有目录生成一个计数。

ls ./images/ > directories.lst  
cat directories.lst | xargs -i{} find {} | wc 
Run Code Online (Sandbox Code Playgroud)

这根本不会产生任何输出。

cat directories.lst | xargs -I{} bash -s "find {} | wc"
Run Code Online (Sandbox Code Playgroud)

cho*_*oba 5

您可以使用 for 循环:

for dir in ./images/* ; do echo $dir ; ls "$dir" | wc ; done
Run Code Online (Sandbox Code Playgroud)

如果您也希望包含点文件,请使用ls -a.

如果您也想对点目录中的文件进行计数,请使用for dir in ./images/* ./images/.*.

如果有一些非目录,可以添加一个测试:

for dir in ./images/* ; do
    if [[ -d $dir ]] ; then
        echo $dir
        ls "$dir" | wc
    fi
done
Run Code Online (Sandbox Code Playgroud)