如何计算每个目录中的文件数?

新手上路,请多包涵

我可以列出所有目录

find ./ -type d

我尝试使用以下命令列出每个目录的内容并计算每个目录中的文件数

find ./ -type d | xargs ls -l | wc -l

但这总结了返回的总行数

find ./ -type d | xargs ls -l

有没有办法计算每个目录中的文件数?

原文由 user784637 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 488
2 个回答

假设你有 GNU find,让它找到目录,然后让 bash 完成剩下的工作:

 find . -type d -print0 | while read -d '' -r dir; do
    files=("$dir"/*)
    printf "%5d files in directory %s\n" "${#files[@]}" "$dir"
done

原文由 glenn jackman 发布,翻译遵循 CC BY-SA 3.0 许可协议

这将打印当前目录级别的每个目录的文件计数:

 du -a | cut -d/ -f2 | sort | uniq -c | sort -nr

原文由 Sebastian Piskorski 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题