我已经使用 rsync 完全传输了一个文件没有使用--稀疏,-S选项。我不想浪费空间,因此重新同步文件并将其变成稀疏文件。有没有办法在不先删除目标上的文件的情况下实现此目的?常规增量同步似乎没有注意到目标系统上的文件不再是稀疏文件的事实。
我知道我可以再次同步文件或使用dd 与 conv=sparse或者cp 与 --sparse=always但我想知道是否可以指示 rsync 重新应用稀疏信息。
答案1
fallocate --dig-holes {filename}
可用于在现有文件中创建稀疏孔。
请参阅文档,man fallocate
其中说明,
-d
,--dig-holes
检测并挖掘漏洞。这会使文件就地稀疏,而不使用额外的磁盘空间。漏洞的最小大小取决于文件系统 I/O 块大小(通常为 4096 字节)。此外,使用此选项时,会隐含。如果和--keep-size
未指定范围,则会分析整个文件以查找漏洞。--offset
--length