我有一个包含很多子文件夹的文件夹。
我需要扫描.pst
文件夹和子文件夹内的所有文件,然后我需要知道.pst
找到的所有文件的磁盘空间总大小。
例子:
\myfolder\file1.pst 10gb
\myfolder\mysubfolder\file2.pst 2gb
\myfolder\mysubdolder\mysubsubfolder\file3.pst 8gb
Total size of all .pst files: 20gb.
我怎样才能做到这一点?谢谢你!
答案1
假设使用 GNU 工具(在 Linux 系统上假设是合理的):
find myfolder -type f -name '*.pst' -print0 |
du --human-readable --total --files0-from=-
*.pst
这会查找目录中或目录下名称与模式匹配的所有常规文件myfolder
。每个此类文件的路径名都以空分隔列表的形式传递给du
,该列表从标准输入读取它们并报告文件占用的总大小。
答案2
您可以传递一个文件名列表作为输入du
(假设是 GNU 版本,即非嵌入式 Linux 上的版本)。
find myfolder -name '*.pst' -print0 | du --files0-from=- -c
或者,如果文件名列表不太长,您可以让 shell 在命令行上传递它。这可以在 zsh 中开箱即用,并且需要shopt -s globstar
bash。
cd myfolder
du -c -- **/*.pst