kut*_*kem 7 disk-usage filemanager
我想知道为什么我执行时得到的目录大小du -sh与文件管理器显示的目录大小不一致。他们有什么不同之处,我的数据到底有多大?我对它在磁盘上的大小不太感兴趣(因为块和东西),我只想知道实际数据有多大。
简短回答:文件管理器以 1000 为单位du计算,默认以 1024 为单位计算。因此,文件管理器将 1024 字节的文件视为“1.024 kB”,而du将其视为“1.000 kiB”。如果您考虑更大的文件,这(字面意思)会成倍增加,例如 Megabyte (1000 * 1000) vs. Mibibyte (1024 * 1024) 或 Gigabyte (1000 * 1000 * 1000) vs. Gibibyte (1024 * 1024 * 1024)。
长答案:差异源于计算机和人类计算的不同方式。当前大多数人类社会都使用十进制系统进行数学运算,以 10 为基数。并非历史上的所有文化都如此,这就是为什么,例如,我们将一天划分为24小时。但对于大多数事情,我们使用 10,或 10 的倍数,或 10 的 n 次方。这在国际单位制(SI) 中很明显,它使用前缀来标记 10 ^ 3 = 1000。1000 克等于 1 *公斤*克,1 米的第 1000 部分等于 1 *毫*米,依此类推。技术上,1000 公斤是 1“兆克”,但传统上,我们使用不同的词来表示它,“吨”。尽管如此,它还是基于 1000。
另一方面,计算机的计算不是基于 10,而是基于 2 - 开/关、通电/不通电、真/假。因此,计算机使用乘法和 2 的幂而不是 10 的乘法:2、4、8、16、32、64 等等。最接近 1000 的 2 的幂是 1024。因此,“1 KB”最初定义为“1000 字节”,而不是大多数其他单位的定义,而是“1024 字节”。同理,“1兆”本来就是“1024*1024字节”,“1GB”本来就是“1024*1024*1024字节”等等。
“当年”,大部分用电脑的人都知道这一点,按照当时使用的天平的顺序,并没有太大的区别。在大多数情况下,文件是 1000 字节“大”还是 1024 字节并不重要。但随着时间的推移,计算机变得无所不在,数字变得更大。今天,许多计算机用户不知道 1000 和 1024,或者他们不在乎。向“Joe Everbody”解释没有太大意义,几乎所有东西,“kilo”的意思是“1000”,但对于计算机,情况就不一样了。此外,差异开始变得显着。如果将基于 1000 的“Gigabyte”与基于 1024 的“Gigabyte”进行比较,差异大约为 10%。随着“太字节”和更大,
因此,在过去几年中,许多国家决定区分这两种计算系统。经典前缀kilo-、mega-、giga-、tera- 等今天几乎总是基于1000 使用。因此,具有1024 字节的文件将不再是“1.000 KB”,而是“1.024 KB”。基于 1024 的单位有了新的前缀,“旧的”的第一个音节后跟“bi”:Kilo -> kibi,mega -> mibi,tera -> tebi 等等。符号为 KiB、MiB、TiB 等。
Ubuntu 的文件管理器 Nautilus 基于 1000 计算。因此它以千字节、兆字节等显示您的文件大小。du另一方面,它仍然基于 1024 计算。因此,du您可以看到以千字节、兆字节等为单位的文件大小。如上所述, 一旦我们处于 tera- 与 tebi- 范围及以上,它就会开始显示 ;)
du提供--si开关。它的工作原理类似于-h,但使用 SI 单位而不是基于 1024 进行计算。所以
du --si -s my_files/
Run Code Online (Sandbox Code Playgroud)
会给你一个 KB、MB、GB 等的大小,而
du -sh my_files/
Run Code Online (Sandbox Code Playgroud)
会给你一个 KiB、MiB、GiB 等的大小。
找出正确的磁盘空间使用情况的正确方法是使用du命令 ( du -sh)。这是因为您的文件管理器(如 Nautilus)不考虑隐藏文件。
或者您可以使用磁盘使用分析器。使用以下命令从终端启动它:
baobab
Run Code Online (Sandbox Code Playgroud)

另请参阅:如何查找 - 目录大小和可用磁盘空间。
| 归档时间: |
|
| 查看次数: |
3867 次 |
| 最近记录: |