Как сжать сжатый файл в unix

Можно ли сжать уже сжатый файл?

Пример: данный сжатый файл, такой как file.zipМожно ли будет сжать его в другой сжатый файл в UNIX, как это:

gzip file.zip

2 ответа

Решение

Почему это не должно быть возможно?

Да, вы можете сжать уже сжатый файл.

Результат будет варьироваться в зависимости от исходных файлов и используемых алгоритмов сжатия.

Например zip сжимает каждый файл сам и помещает эти файлы в контейнер. Если сжатые файлы имеют большую избыточность, то возможно, что gzip или же bzip2 может сжать .zip подать еще дальше. Если в ваших файлах нет избыточности, возможно, целевой файл станет больше.

Во-первых, да, вы можете хранить один архив внутри другого файла архива. На этом окончательное "да" вашему вопросу заканчивается.

Может быть возможным дополнительно сжать сжатые данные, но вы не можете сделать это ни с одним из распространенных инструментов (ZIP, RAR, LHA, GZ, 7z и т. Д.). Вместо этого вам понадобится инструмент, специально разработанный для дальнейшего сжатия ваших сжатых данных.

Однако большинство людей, изучающих сжатие файлов, не обращают на это особого внимания, поскольку ищут способы заставить общие инструменты сжатия работать с различными распространенными форматами файлов, поэтому вряд ли вы найдете практичный инструмент для этого. Вместо этого вы должны взглянуть на параметры вашего инструмента сжатия и установить для него максимальное сжатие, которое он поддерживает, вместо этого, чтобы минимизировать размер ваших данных.

TL; DR

Нет, ты не можешь.

Другие вопросы по тегам