计算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终端中特定文件的总空间消耗的主要内容,如果未能解决你的问题,请参考以下文章