Linux: zip больше 4Gb

11

Я получаю сообщение об ошибке, когда пытаюсь сжать большой файл в Linux, потому что он слишком велик для работы с zip. Кто-нибудь знает, какие команды я могу использовать, чтобы обойти это?

Это ошибка, которую я получаю:

zip error: Entry too big to split, read, or write (file exceeds Zip's 4GB uncompressed size limit)

Это простой текстовый файл, фактически файл журнала.

Мэтт Роджерс
источник
3
используйте вместо этого tar + gzip.
лунная тень
1
Просто разделите файл на части по 1 ГБ и заархивируйте их. Или используйте современный алгоритм сжатия, вам не нужен формат архива в вашем случае.

Ответы:

7

используйте команду linux split, чтобы разделить файл журнала на более мелкие файлы.

и рассмотрите возможность настройки поворота журнала, чтобы это больше не повторилось.

Дэвид Чан
источник
2
Просто добавьте это, чтобы поддержать других пользователей, если они ищут это. Я использовал эту команду, чтобы разбить файл на кусочки по 1 Гб: split -b 1024 м access_log2 access_log_
Мэтт Роджерс
15

Базовый формат Zip ограничен 4 ГБ на файл. Вам нужно обновить ваш zipинструмент до того, который поддерживает Zip64:

$ zip -v
Copyright (c) 1990-2008 Info-ZIP - Введите 'zip "-L" для лицензии на программное обеспечение.
Это Zip 3.0 (5 июля 2008 г.) от Info-ZIP.
...

Специальные возможности компиляции на молнии:
        ...
        ZIP64_SUPPORT (используйте Zip64 для хранения больших файлов в архивах)

Или используйте другой формат архива, например, 7z или tar .

user1686
источник