1

Я должен создать ZIP-файл (без сжатия). Я хочу, чтобы файлы в zip были в формате FAT. То есть, если я использую команду zipinfo , я должен получить следующее:

...
    -rw-a--     2.0 fat     3739 b- stor 25-Feb-11 16:46 part0/0072.png
    -rw-a--     2.0 fat     3703 b- stor 25-Feb-11 16:46 part0/0073.png
    -rw-a--     2.0 fat     3751 b- stor 25-Feb-11 16:46 part0/0074.png
    -rw-a--     2.0 fat     3688 b- stor 25-Feb-11 16:46 part0/0075.png
    -rw-a--     2.0 fat     3705 b- stor 25-Feb-11 16:46 part0/0076.png
...

Для этого я использую команду zip

zip -0 -r <archive>.zip <folder>

Однако я получаю следующее (когда я вижу с zipinfo)

...
    -rw-r--r--  3.0 unx   250847 bx stor  7-Apr-15 01:14 part0/00059.png
    -rw-r--r--  3.0 unx   216029 bx stor  7-Apr-15 01:14 part0/00060.png
    -rw-r--r--  3.0 unx   236572 bx stor  7-Apr-15 01:14 part0/00061.png
    -rw-r--r--  3.0 unx   247082 bx stor  7-Apr-15 01:14 part0/00062.png
    -rw-r--r--  3.0 unx   256374 bx stor  7-Apr-15 01:14 part0/00063.png
...

Есть ли способ сделать это с помощью командной строки?

2 ответа2

1

Вы можете добавить опцию -k в вашу командную строку:

-k
--DOS-имена

Попытайтесь преобразовать имена и пути, чтобы они соответствовали MSDOS, сохраните только атрибут MSDOS (только атрибут записи пользователя из Unix) и пометьте запись как выполненную в MSDOS (даже если это не так); для совместимости с PKUNZIP под MSDOS, который не может обрабатывать определенные имена, такие как имена с двумя точками.

Команда zipinfo покажет вам толстый, а не unx.
Вы можете найти интересным даже вариант -ll , -S

-ll
--from-CRLF

Переведите MS LOS конец строки CR LF в Unix LF. Эта опция не должна использоваться в двоичных файлах. Эта опция может использоваться в MSDOS, если zip-файл предназначен для распаковки под Unix ...
(прочитайте все это)

-S
--system скрытая

[MSDOS, OS/2, WIN32 и ATARI] Включают системные и скрытые файлы.

Заметки:

  • ZIP-файл, созданный в Linux, совместим с Windows: так что, вероятно, вам не нужно это делать.
  • Формат DOS с короткими именами может привести к попытке создания более одного пути / файла с одним и тем же именем, что приводит к ошибкам:

    Ошибка zip: недопустимые аргументы команды (невозможно повторить имена в zip-файле)

0

Zip-файл должен быть совместим с Windows. Файл ZIP на самом деле не в формате FAT, который является форматом диска, но в Linux больше атрибутов файла, чем в окне. Например. Окно не имеет исполняемого бита.

Может быть, ваша проблема в другом. Проверьте: http://usefulmix.com/creating-a-zip-archive-under-linux-that-is-windows-compatible/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .