Сначала я создал файл объемом 1 ГБ и перенес в папку /target
, затем сжал файл с помощью 7z a targer.7z target
.
Позже я добавляю строку hello
в конец файла объемом 1 ГБ.Когда я повторно сжал папку /target
, используя опцию обновления 7z u target.7z target
;Я заметил, что обновленный файл снова сжимается, а не только его обновленный раздел.
[Q] Как заставить 7z
сжимать только обновленный раздел файла вместо сжатия полностью обновленного файла?Есть ли альтернативные методы сжатия для достижения этой цели?
Пример:
$ mkdir target
$ fallocate -l 1G target/temp_1GB_file
$ time 7z a target.7z target
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)
Scanning
Updating archive target.7z
Compressing target/temp_1GB_file
Compressing target/target.7z
Everything is Ok
real 0m23.054s
user 0m30.316s
sys 0m1.047s
$ echo 'hello' >> target/temp_1GB_file
$ time 7z u target.7z target # Here complete file has been compressed all over again.
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)
Scanning
Updating archive target.7z
Compressing target/temp_1GB_file
Everything is Ok
real 0m23.861s
user 0m30.781s
sys 0m1.192s
Здесь, как вы можете видеть, я добавил файл со строкой 'hello
', а не сжимал расположенную hello's
блокировка файла и объединение с уже сжатым файлом объемом 1 ГБ, полный файл повторно сжат.