我很难掌握读取文件大小的正确方法是什么,因为每个命令都会给你不同的结果。我还在http://forums.devshed.com/linux-help-33/du-and-ls-generating-inconsistent-file-sizes-42169.html 上看到了一篇文章,其中说明了以下内容;
du 为您提供文件在文件系统上的大小。(IE 将始终为您提供可被 1024 整除的结果)。
ls 会给你文件的实际大小。
您正在查看的是文件的实际大小与其占用的磁盘空间量之间的差异。(也称为文件系统效率)。
它驻留在文件系统上和文件的实际大小有什么区别
Han*_*an5 49
这称为松弛空间:
当数据文件小于文件系统能够跟踪的最小数据单元时,单个位和字节之上的每一层抽象都会导致空间浪费。扇区、簇或块内的这种浪费空间通常称为空闲空间,它通常不能用于存储附加数据。对于单个 256 字节扇区,最大浪费的空间为 255 字节。对于 64 KB 的集群,浪费的最大空间为 65,535 字节。
因此,如果您的文件系统以 64 KB 为单位分配空间,并且您存储一个 3 KB 的文件,则:
注意:某些文件系统支持块子分配,这有助于通过将多个小文件(或大文件的尾端)分配到同一个块中来缓解此问题。
wom*_*ble 23
这里还有另一种选择,尚未涵盖 -稀疏文件。在这种情况下,du将显示比简单的更小的大小ls -l,因为ls将文件的“大小”报告为表观大小(您可以读取的字节数,如果您想要很多零),而du将继续使用实际使用的磁盘块数。
有趣的技巧:创建大量大型稀疏文件,然后用您拥有的磁盘空间给您的朋友留下深刻印象(“看,我的硬盘驱动器上存储了 110 亿个 1TB 文件!”)。好吧,那也许就不那么有趣了。
文件系统由块组成。文件不必整齐地放入块中。如果文件为 1024 字节,则其大小在 ls 中,du 将为 1024。如果文件大小为 1025,则大小将在 ls 中为 1025,在 du 中为 2048。
请注意,上面的示例假设块大小为 1024。如今,更大的块大小已成为常态,例如,
ls -l fred
-rw-r--r-- 1 iain users 1024 Jul 13 22:06 fred
du -h fred
8.0K fred
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27327 次 |
| 最近记录: |