On Tue, Dec 21, 2010 at 09:42:20PM +0300, Sergey Vlasov wrote: > 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-архивы. Хотя это могли быть и управляющие коды, затирающие вывод первого PK в сигнатуре - опять-таки требуется вывод hexdump, прямой вывод бинарных данных в терминал ни к чему хорошему не приведёт.