递归地输出目录中某种类型的所有文件的文件大小?

Jam*_*s P 1 unix linux

我试图在目录中递归地获取 PDF 文件总大小的总和。我尝试在目录中运行下面的命令,但是递归部分无法正常工作,因为它似乎只报告当前目录中的文件,而不包含其中的目录。我预计结果大小接近 100 GB,但该命令仅报告大约 200 MB 的文件。

find . -name "*.pdf" | xargs du -sch
Run Code Online (Sandbox Code Playgroud)

请帮忙!

iam*_*ser 6

用于stat -c %n,%s获取各个文件的file name和。size然后使用awk求和大小并打印。

$ find . -name '*.pdf' -exec stat -c %n,%s {} \; | awk -F, '{sum+=$2}END{print sum}'
Run Code Online (Sandbox Code Playgroud)

事实上你不需要%n,因为你只想要总和:

$ find . -name '*.pdf' -exec stat -c %s {} \; | awk '{sum+=$1}END{print sum}'
Run Code Online (Sandbox Code Playgroud)