Как повторно синхронизировать уже переданный разреженный файл с помощью rsync?
Я полностью передал файл с помощью rsync без использования опции --sparse, -S . Я не хочу тратить место и, следовательно, повторно синхронизировать файл и превратить его в разреженный файл. Есть ли способ добиться этого, не удаляя сначала целевой файл? Кажется, обычная дельта-синхронизация не замечает того факта, что файл в целевой системе больше не является разреженным файлом.
Я знаю, что могу снова синхронизировать файл или использовать dd с conv=sparse или cp с --sparse=always локально, но мне было интересно, можно ли сказать rsync повторно применить разреженную информацию.
1 ответ
fallocate --dig-holes {filename}
может использоваться для создания редких дыр в существующих файлах.
См. документацию,man fallocate
, в котором говорится,
-d
,--dig-holes
Обнаруживайте и копайте ямы. Это делает файл разреженным на месте без использования дополнительного дискового пространства. Минимальный размер дыры зависит от размера блока ввода-вывода файловой системы (обычно 4096 байт). Кроме того, при использовании этой опции--keep-size
подразумевается. Если диапазон не указан--offset
и--length
, затем весь файл анализируется на наличие дыр.