删除 GNUSparseFile.0 目录安全吗?

删除 GNUSparseFile.0 目录安全吗?

在查看一些文件系统以了解哪些文件系统消耗了磁盘空间时,我发现了一个名为GNUSparseFile.0.我无法轻易查明其内容是否被使用。它可能是解压后暂时剩下的东西吗?操作系统是 FreeBSD,因此可能已使用 BSD 解压tar

答案1

我以前也被这个咬过。

你说得对。 GNUtar手册试图向你推销一个谎言:

他们声称找到了便携的归档稀疏文件的方法,无需将稀疏区域扩展为零。您可以使用任何tar.

现在,tar 格式没有选项来指定诸如“A 中的区域为零并且在提取时表示为稀疏”之类的内容。因此,他们所做的不是在文件头中添加一些内容(老实说,那里没有太多空间)来解决这个问题(如果无法解压,让解包器通知用户),或者将压缩实际上集成到他们的文件中他们发明targzip一种新的数据结构,即容器,它首先包含文件稀疏区域的映射,以及该文件的非稀疏其余部分。

然后,当您使用 GNU tar 时,他们会归档这样一个“伪稀疏容器”,并告诉它保留稀疏性。

当然,在提取时,除非您使用相同的实现,否则您将获得容器,而不是稀疏文件。至少可以说,这可能会让用户感到有点惊讶,并且打破了“可移植性”的概念(即,在任何具有 any 的机器上,输入的数据就是输出的数据tar)。还要注意这里的界面xsparse设计得多么糟糕;您应该知道原始稀疏文件名,并且必须手动查找它:/。

可能有人解压了这样一个tar包含这样一个稀疏文件容器的 GNU 文件,然后清理了他们期望在该存档中的文件(可能通过一个文件列表,该列表以与 tar 存档不同的方式到达他们) 。他们期待原始文件(然后在清理过程中可能找不到),但不是稀疏容器,因此对他们来说,稀疏容器似乎不是来自他们解压的内容,因此他们忽略了它。

所以,这就是您在这里得到的:来自 GNUtar创建的 TAR 的东西,并且最终从未从其容器中解压出来。

相关内容