Смотрите здесь: https://wiki.ubuntu.com/DashAsBinSh, возможно, Это поможет.
Разница в выходных файлах, вероятно, НЕ связана с методом сжатия. По умолчанию GNU tar использует стандартный режим GZIP deflate . Одна из причин разницы заключается в формате файла, сжатого GZIP.
Структура первых 8 байтов заголовка GZIP следующая
OFFSET SIZE VALUE COMMENT
0 1 0x1F First "magic" id
1 1 0x8B Second "magic" id
2 1 CM Compression method
3 1 FLAGS 8-bit flag register
4 4 MTIME Object modification time
Проблема связана с полем MTIME
. Для данных, поступающих из канала, это значение текущего времени Unix (секунды с 1 января 1970 г.). Поэтому два идентичных сжатых архива, созданных с интервалом не менее одной секунды, будут отличаться друг от друга.
Попробуйте выполнить tar -cvzf
дважды для одних и тех же данных и сравните результаты. Результаты будут отличаться пятым байтом, младшим байтом значения временной метки.
$ tar czvf test1.tgz tmp/ ; sleep 2 ; \
tar czvf test2.tgz tmp/ ; md5sum test1.tgz test2.tgz
tmp/
tmp/test
tmp/
tmp/test
23d46f62dd4a9a0851279df7fe15842e test1.tgz
c8ae65026a5f771c63acf87a18f7379c test2.tgz