файл, сжатый с помощью команды "pv", отличается от обычного сжатого файла

Вот мой сценарий:

tar cf - testdir | pv -s $(du -sb testdir | awk '{print $1}') | pigz -1 > pv.tar.gz

tar cf - testdir | pigz -1 > nopv.tar.gz

diff pv.tar.gz nopv.tar.gz

а затем вывод: "Двоичные файлы pv.tar.gz и nopv.tar.gz отличаются".

Я выполняю hexdump

и я обнаружил, что только первая строка этих двух файлов немного отличается

pv.tar.gz: 8b1f 0008 9e24 5fc8 0304 bdec 5f7b c71b

nopv.tar.gz: 8b1f 0008 9c18 5fc8 0304 bdec 5f7b c71b

Но после того, как я разархивировал его и снова сравнил, testdir остался точно таким же.

Я хочу спросить, как мне сделать два файла tar.gz согласованными?

1 ответ

Решение

Это не связано с pv. Байты с 5 по 8 в заголовке gzip являются меткой времени. Это будет отличаться каждый раз при запуске команды. Ты можешь сказать pigz не хранить его с -m switch, поэтому ваши команды:

tar cf - testdir | pv -s $(du -sb testdir | awk '{print $1}') | pigz -1 -m > pv.tar.gz

tar cf - testdir | pigz -1 -m > nopv.tar.gz

который должен дать вам то же самое содержание. Вы заметите, когда вы hexdump что все изменившиеся значения 00 в настоящее время.

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