linux - 递归地输出目录中某些类型的所有文件的文件大小?
问题描述
我试图在一个目录中递归地获取 PDF 文件的总大小的总和。我尝试在目录中运行下面的命令,但递归部分无法正常工作,因为它似乎只报告当前目录中的文件而不包括其中的目录。我预计结果的大小接近 100 GB,但是该命令仅报告大约 200 MB 的文件。
find . -name "*.pdf" | xargs du -sch
请帮忙!
解决方案
用于stat -c %n,%s
获取单个文件的file name
和size
。然后使用awk
对大小求和并打印。
$ find . -name '*.pdf' -exec stat -c %n,%s {} \; | awk -F, '{sum+=$2}END{print sum}'
事实上你不需要%n
,因为你只想要总和:
$ find . -name '*.pdf' -exec stat -c %s {} \; | awk '{sum+=$1}END{print sum}'
推荐阅读
- pointers - 如何使用反射读取指向切片的指针的值?
- asynchronous - 异步请求并不总是被执行
- reactjs - React Uncaught Invariant Violation:元素类型无效:需要一个字符串
- html - 如果我在 HTML 表单中添加电话号码,添加新员工按钮将被禁用。放置html元素有限制吗?
- type-conversion - 如何在 cplex 中转换/获取整数表达式的值?
- reactjs - 我如何在strapi上为特定用户上传图片
- sql - 带有逗号分隔参数的 MS Query
- jenkins - 在 jenkinsfile 中使用 SSH 管道 sshCommand 时无法 cd
- javascript - Mortage Calc - 公式问题
- javascript - 为什么 fetch() 使用 ReadableStream 作为响应的主体?