今天我下载了几个文件。应用程序 AFAIK 从一开始就为整个文件保留空间。对于第一个和第二个文件,我看到下载开始后可用 RAM 立即减少,但对于第三个文件,没有足够的空间(每条消息),我删除了一些并开始下载。但令我惊讶free
的是,继续显示可用空间很大。我检查了文件的大小,认为该应用程序可能只保留了部分空间来启动,但不,文件大小已满几个 GB,如 Nemo 所示。我想也许我不小心删除了超出预期的内容,但下载后free
显示几乎没有可用内存。文件系统如何报告相当大的对象(文件),但它不占用空间?
该系统基于 Ubuntu liveUSB,启动到 RAM,例如,findmnt
因此我犹豫调用它,因为我不太了解启动脚本(也不确定哪些标签适用于该问题)。如果确定原因很重要,我可以尝试在纯 tmpfs 驱动器上重现该问题。哦,我的问题 - 如果信息相互矛盾,我如何信任来自各种 Linux 实用程序的信息?/
cow
tmpfs
文件的外观大小不一定与它们在磁盘上实际占用的空间相同:
我实际上没有 10PiB 的磁盘,幸好
hugefile
不占用 10PiB:这里的重要字段是块数,0。
此类文件称为稀疏文件。
许多下载工具在提前知道文件的最终大小时会这样操作:它们会给出文件的完整大小,使文件的外观大小始终等于其最终的“真实”大小,然后在收到文件内容时写入文件,逐步分配磁盘空间。这就是你所看到的。