Является ли эффективным с точки зрения размера хранилища метод «архивировать-сжать-и-заархивировать» или «сжать-и-заархивировать»?

Является ли эффективным с точки зрения размера хранилища метод «архивировать-сжать-и-заархивировать» или «сжать-и-заархивировать»?

Я пытаюсь архивировать старые файлы (более 1000) и думаю о двух вариантах

  1. сжать отдельные файлы, а затем создать zip-архив

  2. создать gzip, используя tar cvzfгруппу файлов

Не уверен, что будет наиболее эффективным с точки зрения хранения пространства.

Есть ли какая-нибудь информация, которая поможет понять, что является наилучшей практикой?

решение1

Использование gzip, а затем zip излишне. Zip имеет собственное сжатие, хотя оно может быть или не быть таким же высоким, как gzip. Использование zip, вероятно, лучше, если вы хотите извлечь отдельные файлы из полученного архива.

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

Обратите внимание, что вы можете сделать все это за один шаг. Например,

tar cf - somedir | gzip -9 > somedir.tar.gz

или эквивалентно

tar czf somedir.tar.gz somedir

В качестве альтернативы вы можете использовать xz (или опцию J вместо z), что обеспечивает еще более высокую степень сжатия за счет значительно более длительного времени сжатия. (Но если это долгосрочное архивирование, вас может не волновать, сколько времени займет сжатие.)

Связанный контент