URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92130
[ Назад ]

Исходное сообщение
"Порядок ключей tar"

Отправлено LPby , 19-Авг-11 12:21 
В чем различие в последовательности ключей в данном примере? Архивы создаются корректно, с одинаковыми объемами, но с разным содержимым.

$ echo test > file

$ tar -czvf czvf.tgz file
file

$ tar -zcvf zcvf.tgz file
file

$ ls -l *.tgz
-rw-r--r-- 1 user group 128 2011-08-19 11:10 czvf.tgz
-rw-r--r-- 1 user group 128 2011-08-19 11:10 zcvf.tgz

$ diff czvf.tgz zcvf.tgz
Двоичные файлы czvf.tgz и zcvf.tgz различаются

$ gunzip czvf.tgz

$ gunzip zcvf.tgz

$ ls -l *.tar
-rw-r--r-- 1 user group 10240 2011-08-19 11:10 czvf.tar
-rw-r--r-- 1 user group 10240 2011-08-19 11:10 zcvf.tar

$ diff czvf.tar zcvf.tar


Содержание

Сообщения в этом обсуждении
"Порядок ключей tar"
Отправлено alikhantara , 19-Авг-11 13:02 
>[оверквотинг удален]
> -rw-r--r-- 1 user group 128 2011-08-19 11:10 czvf.tgz
> -rw-r--r-- 1 user group 128 2011-08-19 11:10 zcvf.tgz
> $ diff czvf.tgz zcvf.tgz
> Двоичные файлы czvf.tgz и zcvf.tgz различаются
> $ gunzip czvf.tgz
> $ gunzip zcvf.tgz
> $ ls -l *.tar
> -rw-r--r-- 1 user group 10240 2011-08-19 11:10 czvf.tar
> -rw-r--r-- 1 user group 10240 2011-08-19 11:10 zcvf.tar
> $ diff czvf.tar zcvf.tar

man tar:
-c, --create
              create a new archive
-z, --gzip
              filter the archive through gzip
очерёдность и создаёт Binary files czvf.tgz and zcvf.tgz differ


"Порядок ключей tar"
Отправлено LPby , 19-Авг-11 13:07 
> очерёдность и создаёт Binary files czvf.tgz and zcvf.tgz differ

долго пытался понять смысл этой фразы -- не получилось.
не могли бы ли вы более развернуто ответить?


"Порядок ключей tar"
Отправлено alikhantara , 19-Авг-11 13:22 
>> очерёдность и создаёт Binary files czvf.tgz and zcvf.tgz differ
> долго пытался понять смысл этой фразы -- не получилось.
> не могли бы ли вы более развернуто ответить?

"Двоичные фалы файл1 и файл2 отличаются"
Разница получается из-за последовательности движений.
Здесь всё дело в параметре -z (gzip)
man gzip:
gzip - compress or expand files
Можно сначала компресс потом крит или крит потом компресс.  


"Порядок ключей tar"
Отправлено cryo , 19-Авг-11 15:01 
Опередили.

"Порядок ключей tar"
Отправлено Andrey Mitrofanov , 19-Авг-11 14:04 
>[оверквотинг удален]
> $ echo test > file
> $ tar -czvf czvf.tgz file
> file
> $ tar -zcvf zcvf.tgz file
> file
> $ ls -l *.tgz
> -rw-r--r-- 1 user group 128 2011-08-19 11:10 czvf.tgz
> -rw-r--r-- 1 user group 128 2011-08-19 11:10 zcvf.tgz
> $ diff czvf.tgz zcvf.tgz
> Двоичные файлы czvf.tgz и zcvf.tgz различаются

$ cmp -bl czvf.tgz zcvf.tgz
  5 337 M-_  341 M-a

Забавно, но этот "пятый" байт "всегда" разный....

...ан, нет!! Ж))))))))))))))

Всем читать исходники gzip два часа?....  Достаточно RFC 1952 aka GZIP file format specification:

""MTIME (Modification TIME)
         This gives the most recent modification time of the original file being compressed.""

С пятого байта как раз.

Время создания (или конвейеров внутри tar -z) czvf.tgz и zcvf.tgz - разное, поэтому "байтики" отличаются.

Очень забавный формат!

ЗЫ: Но фантазёры -- "сначала компресс потом крит" -- забавнее.


"Порядок ключей tar"
Отправлено reader , 19-Авг-11 14:25 
>[оверквотинг удален]
> Всем читать исходники gzip два часа?....  Достаточно RFC 1952 aka GZIP
> file format specification:
> ""MTIME (Modification TIME)
>          This gives the
> most recent modification time of the original file being compressed.""
> С пятого байта как раз.
> Время создания (или конвейеров внутри tar -z) czvf.tgz и zcvf.tgz - разное,
> поэтому "байтики" отличаются.
> Очень забавный формат!
> ЗЫ: Но фантазёры -- "сначала компресс потом крит" -- забавнее.

-n, --no-name     do not save or restore the original name and time stamp


"Порядок ключей tar"
Отправлено Andrey Mitrofanov , 19-Авг-11 15:55 
> -n, --no-name     do not save or restore the
> original name and time stamp

Вау, работает! :D

$ echo test > file
$ GZIP=-n tar -czvf czvf.tgz file
file
$ GZIP=-n tar -zcvf zcvf.tgz file
file
$ cmp -bl czvf.tgz zcvf.tgz
$ _


$ od -t x1 czvf.tgz |head -1
0000000 1f 8b 08 00 00 00 00 00 00 03 ed ce 31 0a 02 31
$ _


"Порядок ключей tar"
Отправлено LPby , 19-Авг-11 14:43 
del


"Порядок ключей tar"
Отправлено LPby , 19-Авг-11 14:59 
>[оверквотинг удален]
> Всем читать исходники gzip два часа?....  Достаточно RFC 1952 aka GZIP
> file format specification:
> ""MTIME (Modification TIME)
>          This gives the
> most recent modification time of the original file being compressed.""
> С пятого байта как раз.
> Время создания (или конвейеров внутри tar -z) czvf.tgz и zcvf.tgz - разное,
> поэтому "байтики" отличаются.
> Очень забавный формат!
> ЗЫ: Но фантазёры -- "сначала компресс потом крит" -- забавнее.

Действительно, в данном случае берется время создания конвеера в tar.

Тема раскрыта, всем спасибо!