UNIX / Linux稀疏文件 – 在使用? 你如何处理这些?

从一开始标准UNIX / Linux系统支持稀疏文件,这是一个文件,其中包含未使用的空间,直到需要时才分配。 通过一个C程序来生成一个文件,定位到2G,写一个字节,closures文件。 做一个ls -l显示的大小是2G ….但是ls -ls显示块的大小接近一个字节的文件。 如果你逻辑地访问该文件(即cp sparse_file xxx),结果文件xxx确实将包含一个完全分配的2G字节。

过去我已经创build了稀疏文件,作为一些应用程序的testing工具。 但是,他们的存在造成了一些问题。

重要的问题是在“转储”程序之外,备份程序和通用程序在逻辑上访问这些types的文件,因此对于1字节的稀疏文件,获得具有0数据的2G备份。 当我这样做的时候,这导致了一些不安的备份人员。

对于这种情况有什么好的解决办法?

GNU Tar具有–sparse-S )选项,使得使用备用文件变得简单。

使用能够正确检测和处理稀疏文件的备份程序。 他们周围有很多人(杰里米对S的焦油build议),只是把它作为备份系统评估的清单项目。

基于rsync的备份程序应该能够处理空间文件就好了(rsync有–sparce / -S选项)

对于稀疏文件,明星程序比GNU tar要快得多。 处理这些文件时需要使用-sparse选项。 对于简单的复制使用cp –sparse = auto