我使用tar
~/Documents 创建备份。我的.tgz
文件大约 700MB。过去 3 周,我创建了三个这样的文件,并使用 Ubuntu One 保护这些文件免遭丢失。在这三种情况下,Ubuntu One 网站上报告的文件大小与 Nautilus 报告的文件大小不一致。在这三种情况下,云中的文件大小都比桌面文件系统上的文件大小小几 MB。
例如:我的 2012 年 5 月 10 日备份为 761MB,但在云端却是 726MB。
为什么会发生这种情况?
答案1
这是因为 Nautilus 显示的是文件大小兆字节,而 Ubuntu One Web 界面正在显示文件大小兆字节。 比较:
- 1 千字节 = 1000 字节
- 1 兆字节 = 1000 千字节
- 1 千兆字节 = 1000 兆字节
- ...
和:
- 1 千字节 = 1024 字节
- 1 千字节 = 1024 千字节
- 1 吉比字节 = 1024 兆比字节
- ...
因此,在您的示例中:761 是兆字节,726 是毫字节:
- 761 兆= 761 × 1000 kB = 761 × 1000 × 1000 B =761'000'000 乙
现在让我们将 761'000'000 B 转换为兆字节:
- 761'000'000 乙= 761'000'000 ÷ 1024 KiB = 761'000'000 ÷ 1024 ÷ 1024 MiB ≈726 MB
如您所见,兆比字节的正确符号不是 MB,而是 MiB。不幸的是,兆比字节和相关单位最近才被定义。引用维基百科:
mebi- 前缀由国际电工委员会(IEC)于 1998 年 12 月定义。
因此,现在很多人习惯写 MB,而实际上他们指的是 MiB。这是 Ubuntu One 和许多其他应用程序中常见的错误。
答案2
分配给文件的空间由格式化分区的簇大小决定。簇大小在 FAT32/FAT16/NTFS/EXT3/EXT4 文件系统中变化很大。这就是您会看到差异的原因。
如果我有 12 盎司的液体,但只有 10 盎司的杯子,那么就需要两个杯子来容纳 10 盎司的液体。
20 盎司的存储空间可容纳 12 盎司。
40 盎司需要 4 杯或 40 盎司的可用存储空间。
计算机的工作方式类似,具体取决于格式化 PC 时使用的分配单元大小。
查看 1kb .txt 文件的属性,其中文件大小显示 1kb,但还会显示由于分配单元的大小而需要多少存储空间。
来源:计算网
答案3
Ubuntu One 使用 zlib 在发送数据之前对其进行压缩,以节省传输过程中的带宽。它还将文件内容以压缩形式存储在服务器上,以避免在将其发送回流之前重新压缩。
答案与文件系统块大小无关。