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

时间:2010-08-17 17:30:51

标签: filesize gnu-coreutils

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

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

mv *tch temp

2)然后:

du -sk temp

我发现互联网上的命令和维基百科说:“du(从磁盘使用中缩写)是用于估计文件空间使用情况的标准Unix程序”。我认为它之所以说它是一个估计的原因是,如果有链接,那么将显示链接的大小而不是链接文件。

但如果我这样做

ls -l

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

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

我希望有人能帮助我。非常感谢!

2 个答案:

答案 0 :(得分:10)

如果要关注符号链接(即计算链接目标的大小,而不是链接本身的大小),可以使用-L选项du。您还可以使用-c选项在结尾显示总计。

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

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

答案 1 :(得分:1)

请查看您的du版本的特定手册页,因为它们的数量差别很大。

“近似”可能是因为:

  1. 使用的块或使用的字节可以使用块来报告文件大小不是块大小的精确倍数,但更准确地表示“我不能用于其他内容的空间”
  2. Unix文件可以通过寻求漫长的方式和写作来创建“漏洞”。操作系统实际上并没有为跳过的孔分配空间。
  3. 符号链接可能会或可能不会被取消引用它们指向的真实文件。
  4. 如果您只想使用字节数,请使用wc -c *.tcb