假设您的起始文件夹是.,这将为您提供所有文件和总大小:
find . -type f -name '*.jpg' -exec du -ch {} +
Run Code Online (Sandbox Code Playgroud)
最后一次对所有文件+执行du -ch- 而不是每个文件,让您获得 frand 总数。如果您只想知道总数,请| tail -n 1在末尾添加。
公平警告:这实际上执行
du -ch file1 file2 file3 ...
Run Code Online (Sandbox Code Playgroud)
这可能会破坏很多文件。要检查有多少:
$ getconf ARG_MAX
2097152
Run Code Online (Sandbox Code Playgroud)
这就是我的系统上的配置。
但这并没有给你文件的数量。您需要捕获 的输出find并使用它两次。
最后一行是总数,因此我们将使用除最后一行之外的所有行来获取文件数,最后一行获取总数:
OUT=$(find . -type f -name '*.jpg' -exec du -ch {} +)
N=$(echo "$OUT" | head -n -1 | wc -l)
SIZE=$(echo "$OUT" | tail -n 1)
echo "Number of files: $N"
echo $SIZE
Run Code Online (Sandbox Code Playgroud)
这对我来说给出:
Number of files: 143
584K total
Run Code Online (Sandbox Code Playgroud)