Как повторно синхронизировать уже переданный разреженный файл с помощью 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, затем весь файл анализируется на наличие дыр.

Другие вопросы по тегам