计算unix终端中特定文件的总空间消耗

Posted

技术标签:

【中文标题】计算unix终端中特定文件的总空间消耗【英文标题】:Calculate the total space consumption of specific files in unix terminal 【发布时间】:2010-08-17 17:30:51 【问题描述】:

我有一个包含 .tcb 和 .tch 文件的文件夹。我需要知道所有 .tcb 文件的大小,分别是所有 .tch 文件的大小。 我确实喜欢这样:

1) 我创建了一个临时文件夹,然后:

mv *tch temp

2) 然后:

du -sk temp

我在互联网上找到了这个命令,***说:“du(从磁盘使用情况缩写)是一个标准的 Unix 程序,用于估计文件空间使用情况”。我认为它说这是一个估计的原因是如果有链接,那么将显示链接的大小而不是链接的文件。

如果我这样做了

ls -l

在临时文件夹(包含所有 *.tch)文件中,然后总结终端中显示的大小,我有另一个文件大小。为什么会这样?

总之,我需要的是一个命令,它可以显示文件夹中*所有.tch文件真实文件大小,其中还可以包含其他文件类型

我希望任何人都可以帮助我。非常感谢!

【问题讨论】:

【参考方案1】:

如果您想跟随符号链接(即计算链接目标的大小,而不是链接本身的大小),可以使用 -L 选项到 du。您还可以使用-c 选项在最后显示总计。

有了这些选项,试试du -skLc *.tch

有关du的更多详细信息,请参阅this manpage。

【讨论】:

请注意,如果文件夹包含指向同一目录中的 .tch 文件的链接,这可能不会给您预期的结果。该文件将被计算两次:一次用于“实际”文件,一次用于链接版本。 该文件夹不包含任何链接,因此此解决方案似乎可以满足我的要求。谢谢bta【参考方案2】:

查看您的 du 版本的特定手册页,因为它们的计数方式差异很大。

“近似”可能是因为:

    Blocks used 或 Bytes used 可以报告 Blocks 夸大文件大小不是块大小的精确倍数,而是更准确地表示“我不能用于其他东西的已用空间” Unix 文件可能有通过寻找很长的路和写入创建的“洞”。操作系统实际上并没有为跳过的孔分配空间。 符号链接可能会或可能不会被取消引用到它们指向的真实文件。

如果您只想要字节数,请使用wc -c *.tcb

【讨论】:

以上是关于计算unix终端中特定文件的总空间消耗的主要内容,如果未能解决你的问题,请参考以下文章

glances监控工具详解

linux下glances服务器监控工具

计算包含特定值的总记录

计算终端输出中的行数

计算Java中任何对象的总内存使用量[重复]

如何计算条目列表之间的总时间?