On Tue, Dec 21, 2010 at 05:39:49PM +0300, Alexei V. Mezin wrote: > Прислали файл, zip-архив. Но mc в него не заходит, и > > [alexei@threebears tmp]$ file ./3d_for_Dyshkin.zip > ./3d_for_Dyshkin.zip: data > > > При этом unzip отображает его содержимое и распаковывает. > > [alexei@threebears tmp]$ head -c 20 ./3d_for_Dyshkin.zip > PPKЈu”= Вывод hexdump -C -n64 $file был бы полезнее. > Сигнатура и правда какая-то новая. Вероятнее всего, дело не в новой сигнатуре, а в том, что в начало zip-файла можно добавить любое количество произвольных данных, и это не помешает unzip распаковать этот архив - каталог архива ищется в конце файла, а не в начале (правда, в конце может быть до 64 КБ комментариев к архиву, поэтому всё равно приходится выполнять поиск блока с нужной сигнатурой). Эта особенность формата ZIP позволяет, например, просто соединить исполняемый код для распаковки архива с архивным файлом, сохранив возможность распаковать такой файл обычным unzip, при этом не требуется знать особенности формата исполняемого файла для поиска начала архива. Однако полностью описать такой формат для распознавания утилитой file невозможно - в результате эта утилита может автоматически распознавать только "чистые" ZIP-архивы.