我希望我理解稀疏文件的概念。我也知道cp
命令--sparse=...
然而,当谷歌搜索实际应用程序时,我发现关于使用通用操作系统文件 I/O API 读取/写入文件的应用程序的透明程度的含糊不清的陈述(我的意思是不是在极低的级别,只是 fopen()、fclose () ETC)
当阅读博客时,它并不干净,解释谈论应用程序(例如测试编辑器)如何通过显式向稀疏文件写入零来“破坏”稀疏文件。我认为这就是要点,如果存在稀疏文件,并且应用程序写入零,则不会物理存储该文件。应用程序不必知道这一点,也不必处理间隙之类的事情,这是文件系统的责任。
问题
假设存在一个稀疏的现有文件。它对应用程序来说是否完全透明?假设有一个 1G 稀疏文件,其中第一个字节非零,所有其他字节均为零。当“常见”应用程序打开该文件时,我想它可以打开它,并且会看到它的长度为1G,并且可以查找中间(0.5G),因为它不稀疏,可以写入一个非零字节中间,保存,关闭,它将在文件系统上保持稀疏,不是吗?
文件会“自动”稀疏吗?我的意思是,应用程序只是创建一个文件,然后写入一堆零,然后写入,是否稀疏?如果不是,应用程序应该如何将该文件创建为稀疏文件?
当我尝试安装软件包时,请git
使用:
dnf install -y git
Run Code Online (Sandbox Code Playgroud)
在同一个虚拟机映像中,dnf/yum 有时只是安装软件包,但有时,通常如果在最新的 dnf/yum 使用后花费一些时间,它就会开始更新存储库,例如:
AlmaLinux 9 - AppStream 4.7 MB/s | 8.0 MB 00:01
...and so on on all configured and enabled repositories
Run Code Online (Sandbox Code Playgroud)
dnf/yum 如何决定何时更新、何时不更新?我正在同一个映像上安装完全相同的包...因此 linux 和包管理器状态应该也是相同的。