Gzip архив. Архивирование файлов в Linux

При наличии на компьютере установленной антивирусной программы можносканировать все файлы на компьютере, а также каждый файл в отдельности . Можно выполнить сканирование любого файла, щелкнув правой кнопкой мыши на файл и выбрав соответствующую опцию для выполнения проверки файла на наличие вирусов.

Например, на данном рисунке выделен файл my-file.gzip , далее необходимо щелкнуть правой кнопкой мыши по этому файлу, и в меню файла выбрать опцию «сканировать с помощью AVG» . При выборе данного параметра откроется AVG Antivirus, который выполнит проверку данного файла на наличие вирусов.


Иногда ошибка может возникнуть в результате неверной установки программного обеспечения , что может быть связано с проблемой, возникшей в процессе установки. Это может помешать вашей операционной системе связать ваш файл GZIP с правильным прикладным программным средством , оказывая влияние на так называемые «ассоциации расширений файлов» .

Иногда простая переустановка GNU Zip Compressed Archive может решить вашу проблему, правильно связав GZIP с GNU Zip Compressed Archive. В других случаях проблемы с файловыми ассоциациями могут возникнуть в результате плохого программирования программного обеспечения разработчиком, и вам может потребоваться связаться с разработчиком для получения дополнительной помощи.


Совет: Попробуйте обновить GNU Zip Compressed Archive до последней версии, чтобы убедиться, что установлены последние исправления и обновления.


Это может показаться слишком очевидным, но зачастую непосредственно сам файл GZIP может являться причиной проблемы . Если вы получили файл через вложение электронной почты или загрузили его с веб-сайта, и процесс загрузки был прерван (например, отключение питания или по другой причине), файл может повредиться . Если возможно, попробуйте получить новую копию файла GZIP и попытайтесь открыть его снова.


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


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

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


Совет: Если при попытке открыть файл GZIP вы получаете сообщение об ошибке, связанной с.SYS file , проблема, вероятно, может быть связана с поврежденными или устаревшими драйверами устройств , которые необходимо обновить. Данный процесс можно облегчить посредством использования программного обеспечения для обновления драйверов, такого как DriverDoc .


Если шаги не решили проблему , и у вас все еще возникают проблемы с открытием файлов GZIP, это может быть связано с отсутствием доступных системных ресурсов . Для некоторых версий файлов GZIP могут потребоваться значительный объем ресурсов (например, память/ОЗУ, вычислительная мощность) для надлежащего открытия на вашем компьютере. Такая проблема встречается достаточно часто, если вы используете достаточно старое компьютерное аппаратное обеспечение и одновременно гораздо более новую операционную систему.

Такая проблема может возникнуть, когда компьютеру трудно справиться с заданием, так как операционная система (и другие службы, работающие в фоновом режиме) могут потреблять слишком много ресурсов для открытия файла GZIP . Попробуйте закрыть все приложения на вашем ПК, прежде чем открывать GNU Zip Compressed Archive. Освободив все доступные ресурсы на вашем компьютере вы обеспечите налучшие условия для попытки открыть файл GZIP.


Если вы выполнили все описанные выше шаги , а ваш файл GZIP по-прежнему не открывается, может потребоваться выполнить обновление оборудования . В большинстве случаев, даже при использовании старых версий оборудования, вычислительная мощность может по-прежнему быть более чем достаточной для большинства пользовательских приложений (если вы не выполняете много ресурсоемкой работы процессора, такой как 3D-рендеринг, финансовое/научное моделирование или интенсивная мультимедийная работа). Таким образом, вполне вероятно, что вашему компьютеру не хватает необходимого объема памяти (чаще называемой «ОЗУ», или оперативной памятью) для выполнения задачи открытия файла.

Заархивированный файл GNU интегрирован со спецификациями и стандартами, реализованных с помощью алгоритма ZIP GNU сжатия, и эти сжатые файлы GNU сохраняются в формате GZIP и прикреплены с.gzip расширением. Эти.gzip файлы могут содержать один или несколько файлов, выбранных пользователем для сжатия с использованием алгоритма ZIP GNU. Полученный файл GZIP будет в меньшем размере, чем фактический размер несжатых версий файлов, хранящихся в файле GZIP. Алгоритм ZIP GNU является открытой технологией сжатия источника, а также поддержка этих стандартов сжатия GZIP и спецификации в основном интегрированы в системах Unix на базе. Есть много сжатия файлов и декомпрессии инструментов Microsoft Windows с поддержкой этих GZIP файлов, что означает, что эти программы могут быть использованы для создания или распаковки и получить доступ к информации, хранящейся в этих GZIP файлов. Есть также файл сжатия и распаковки программы, разработанные для Mac платформ, которые могут быть использованы для распаковки этих файлов GZIP. Smith Micro StuffIt Делюкс 2011 интегрирована с поддержкой сжатия файлов в формате GZIP, а также для распаковке GZIP файлов.

gzip (сокращение от GNU zip) – компьютерная утилита сжатия и восстановления (декомпрессии) файлов, использующая алгоритм DEFLATE. Используется в основном в UNIX-системах, в ряде которых является стандартом де-факто для сжатия данных. Была создана Жан-лу Галли (Jean-loup Gailly) и Марком Адлером (Mark Adler). Версия 0.1 была впервые выпущена 31 октября 1992 года, а версия 1.0 – в феврале 1993 года.

В соответствии с традициями Unix-программирования, gzip выполняет только две функции: сжатие и распаковка одного файла, он не умеет упаковывать несколько файлов в один архив. При сжатии к оригинальному расширению файла добавляется суффикс.gz. Для упаковки нескольких файлов обычно их сначала архивируют в один файл утилитой tar, а потом этот файл сжимают gzip. Таким образом, сжатые архивы обычно имеют двойное расширение.tar.gz или сокращённое.tgz.

С другой стороны, указанная особенность даёт gzip возможность работать с непрерывным потоком данных, упаковывая/распаковывая их «на лету». Это широко применяется в UNIX-системах: при помощи перенаправления потоков можно работать с упакованными файлами так же легко, как и с распакованными (распаковывая их в памяти при чтении и упаковывая при записи); многие Unix-утилиты имеют встроенную поддержку этого механизма. В последнее время gzip активно применяется для сжатия интернет-трафика. Сейчас gzip поддерживает большинство современных браузеров.

Кроме того, существует набор утилит для выполнения поиска, вывода и сравнения данных в формате gzip: zcat, zdiff, zfgrep, zless, zcmp, zegrep, zgrep, zmore.

Brainsburn

Сравнение архиваторов в Linux

Долгое время я хотел провести сравнительный тест популярных архиваторов, которые доступны в Linux и вот, наконец, появилось свободное время, чтобы сделать это. Я не стал испытывать экзотические или устаревшие архиваторы, в эксперименте приняли участие 7z , xz , zip , bzip2 , gzip и даже была скачана триальная версия архиватора rar . Все архиваторы тестировались с тремя различными настройками сжатия - быстрейшее, среднее (дефолтное) и наилучшее сжатие. Сразу скажу - я не стал экспериментировать с дополнительными опциями вроде размера словарей, - все это я оставил по умолчанию, в ином случае сравнение архиваторов растянулось бы в несколько раз и стало бы менее понятным. Тем более, различные ухищрения с опциями сжатия не всегда приводят к ожидаемым результатом, разработчики вполне хорошо знают свои детища, поэтому чтобы достичь максимального сжатия данных в 7z , достаточно использовать опцию -mx=9 и не парить себе мозги:)

Сейчас передо мной открыто несколько толстых файлов с текстом, из которых мне нужно собрать статью, не забыв ничего нужного и выкинув лишний хлам. Это - самое сложное:) Я постараюсь представить все это в более-менее читаемом виде. Поехали!

Тестируемые архиваторы и распаковщики

  • Gzip 1.4
  • Bzip2 1.0.5
  • RAR 3.93
  • ZIP 3.0
  • unzip 6.0
  • tar 1.22 (в этой версии появилась поддержка xz-utils)
  • xz-utils 4.999
  • p7zip 9.04
  • Чем замерялось время выполнения
    Утилитой time. Эта утилита может показывать реальное число секунд, затраченных процессором на выполнение какой-либо задачи. Это очень важно для тестирования архиваторов. Например, если я решу сжать исходники ядра Linux архиватором ZIP и буду засекать время выполнения задачи обычным секундомером, то обнаружу, что в первый раз сжатие заняло около 2-х минут, второй раз - примерно 30 секунд, в третий раз - 10 секунд. Думаю, не стоит говорить, почему так происходит. Утилита time позволяет избежать подобных проблем и во всех случаях выводит одинаковый результат - кол-во секунд, затраченных CPU на выполнение задачи (Total number of CPU-seconds that the process spent in user mode.) Грубо говоря, результаты тестирования не зависят от скорости чтения данных с жесткого диска.

    Какие типы файлов сжимались

  • Большая куча медиа файлов, которые по сути уже сжаты. Это всякие mp3, jpeg, pdf и avi.
  • Бинарные файлы
  • Образ CD-диска
  • Исходники ядра Linux
  • Несжатые документы, txt и doc файлы
  • Большое количество мелких файлов
  • В каком окружении проводились тесты
    32-битный ЦПУ, 4ГБ DDR2 ОЗУ. Дистрибутив Gentoo Linux, файловая система ext4fs. Все тесты проводились в консоли с выключенными иксами, остановленными ненужными демонами и вообще выключено было все, что можно, даже свет:) Т.е. компьютер использовался исключительно для тестирования архиваторов и не более.

    Что учитывалось в тестировании

  • Тип сжимаемых данных и кол-во файлов
  • Скорость архивирования
  • Размер полученных архивов
  • Скорость распаковки полученных архивов
  • Степень сжатия, задаваемая в настройках архиватора
  • Небольшой ликбез.
    LZMA - новый алгоритм компрессии (сжатия) данных, который используется для создания архивов в формате 7z. Особенности: высокий коэффициент сжатия, использование словарей различного размера, открытый исходный код. - утилита и алгоритм с открытым исходным кодом для сжатия данных. Следуя идеологии Unix, bzip2 выполняет только одну задачу - сжимает файл. Для архивации нескольких файлов или каталогов ее надо использовать вместе с утилитой TAR . Tar архивирует файлы в один, а bzip2 - сжимает. Поэтому и расширение у таких архивов - .tar.bz2
    Gzip - утилита и алгоритм для сжатия и декомпрессии данных. Так же как и bzip2, выполняет только одну задачу - сжимает или производит декомпрессию одного файла. Обладает высокой скоростью работы.
    Deflate - алгоритм сжатия данных.
    TAR - (tape archive, архив на магнитной ленте) - формат архива, утилита для работы с одноименными архивами. Tar не сжимает данные, он создает один файл из многих, который, обычно, затем архивируется с помощью алгоритма gzip или bzip2.
    RAR - Платный популярный формат сжатия данных и программа для работы с различными типами архивов. Автор - Евгений Рошал.
    Unrar - бесплатный распаковщик RAR архивов.
    ZIP - Стандартный, популярный формат сжатия данных.
    XZ - Формат сжатия данных, который использует алгоритм сжатия LZMA. Создан как замена lzma. XZ-utils - реализация формата XZ в Linux. Архиватор TAR, начиная с версии 1.22 позволяет создавать архивы в формате xz.
    7z - формат сжатия данных, использующий алгоритм сжатия LZMA.
    p7zip - реализация 7-Zip архиватора для Linux.
    7-Zip - файловый архиватор, который поддерживает множество алгоритмов сжатия. Автор - Игорь Павлов. Основной формат - 7z с использованием алгоритма LZMA.
    q7z - GUI к архиватору p7zip

    С какими опциями запускались архиваторы

    Создать RAR архив. Дефолтное сжатие. rar a -r archive.rar files
    Создать RAR архив. Быстрое сжатие rar a -r -m1 archive.rar files
    Создать RAR архив. Максимальное сжатие rar a -r -m5 archive.rar files
    Создать ZIP архив. Дефолтное сжатие zip -r archive.zip files
    Создать ZIP архив. Быстрое сжатие zip -r -1 archive.zip files
    Создать ZIP архив. Максимальное сжатие zip -r -9 archive.zip files
    Создать 7z архив. Дефолтное сжатие 7z a archive.7z files
    Создать 7z архив. Быстрое сжатие 7z a -mx=1 archive.7z files
    Создать 7z архив. Максимальное сжатие 7z a -mx=9 archive.7z files
    Создать bzip2 архив. Максимальное (дефолтное) сжатие tar cfj archive.tar.bz2 files
    Создать bzip2 архив. Среднее сжатие tar cf archive.tar files
    bzip2 -vc4 archive.tar > archive.tar.bz2
    Создать bzip2 архив. Быстрое сжатие tar cf archive.tar files
    bzip2 -vc1 archive.tar > archive.tar.bz2
    Создать gzip архив. Дефолтное сжатие tar cfz archive.tar.gz files
    Создать gzip архив. Максимальное сжатие tar cf archive.tar files
    gzip -vc9 archive.tar > archive.tar.gz
    Создать gzip архив. Быстрое сжатие tar cf archive.tar files
    gzip -vc1 archive.tar > archive.tar.gz
    Создать XZ архив. Дефолтное сжатие export XZ_OPT=""
    Создать XZ архив. Быстрое сжатие export XZ_OPT="-1"
    tar cfJ archive.tar.xz files
    Создать XZ архив. Максимальное сжатие export XZ_OPT="-9 --extreme"
    tar cfJ archive.tar.xz files

    Доп. инфо
    Для замера времени использовалась утилита time: % /usr/bin/time -f "%U" Bzip2 по умолчанию архивирует в режиме максимального сжатия (9), поэтому дефолтное сжатие было принято за наилучшее, а в качестве среднего использовалось сжатие 4 (1 - быстрейшее, 9 - наилучшее).
    В некоторых тестах я решил использовать ZIP, RAR и 7z вкупе с архиватором TAR. Результаты увидите:)
    Результаты у 7z и XZ заметно отличаются. Хотя 7z и использует LZMA, как и XZ, я тестировал их как отдельные архиваторы.
    Для создания архивов XZ TAR 1.21 использует lzma, а TAR 1.22 - XZ.
    Чтобы TAR автоматически определял тип архива, используйте ключик a : % tar xaf archive.tar.bz2 При создании архивов XZ в TAR, опции сжатия можно указать через переменную окружения XZ_OPT: % export XZ_OPT="-9 --extreme"

    Тест №1. Сжатие медиа файлов.

    Для 1-го теста я собрал большую кучу из файлов, которые по сути уже сжаты. Это mp3, wav, jpg, png, pdf, avi. Все они сжимаются практически одинаково плохо:)
    В итоге у меня получился каталог, который набит всякой вкуснятиной:
  • Один музыкальный альбом в MP3 (60MB)
  • Один музыкальный файл WAV (60MB)
  • Два обычных видео файла (230MB)
  • Пять DJVU и PDF файлов (130MB)
  • Много (20) JPEG и PNG файлов (50MB)
  • Итого 537MB.



    На максимальном сжатии лучшие результаты у RAR - он сжал данные неожиданно лучше и быстрее других. Хотя 1029 секунд врятли захочется потратить ради экономии 40МБ. Gzip и ZIP сжали не так хорошо, зато в 10 раз быстрее чем RAR и XZ.
    На среднем сжатии RAR побеждает в номинации "медленно, но хорошо", а Gzip и ZIP - "не так хорошо, зато очень быстро". У Bzip2 такой середнячковый результат - вроде сжал довольно быстро, но лишь слегка лучше, чем Gzip.
    В быстром режиме размер архивов получился почти одинаковый, а вот время - не совсем. Здесь явно лидирует обычный ZIP, который сжал данные так же хорошо, как gzip и rar, но сделал это намного быстрее. В общем, вывод таков: если вы сжимаете медиа файлы, т.е. файлы, которые уже сжаты и у вас мало времени - используйте Gzip или Zip. Если у вас достаточно времени - Rar или 7z/xz.
    Bzip2, кстати, распаковывал свои архивы очень долго по сравнению с другими, а у RAR-a тут наверно лучший результат по отношению скорость/качество.

    Тест №2. Сжатие бинарных файлов

    Во 2-м тесте будут сжиматься бинарные файлы. Я просто скопировал самые увесистые из моего каталога /usr/bin/.
    Имеется: 100 бинарных файлов сумарным размером 167MB

    На максимальном сжатии 7z показал себя намного лучше, чем XZ - сжал быстрее и лучше. Самым быстрым оказался Zip - быстрее, чем Gzip при одинаковых размерах архивов.
    В среднем режиме сжатия все так же, но использовать Bzip2 нет смысла - он лишь слегка лучше сжимает чем Gzip/ZIP, но заметно медленнее.
    В быстром режиме 7z снова оказался лучше XZ. (Почему? Они же оба используют LZMA!)
    Кстати, у 7z в быстром режиме получился архив 56МБ за 35сек, а у Bzip2 в максимальном (дефолтном) режиме сжатия архив вышел 64МБ за 65сек. Т.е. 7z обскакал Bzip2 по всем статьям:)

    Тест №3. Сжатие образа CD-диска

    Отдельно решил, зачем-то, сжать образ CD-диска. Его можно смело отнести к содержанию теста №1, но я решил вынести это отдельно, на всякий случай:)
    Имеется: 1 образ CD-диска размером 614МБ

    В режиме наилучшего сжатия 7z сделал свою работу слегка хуже, но быстрее чем XZ, а вот RAR оказался самым медлительным. Насчет Bzip2 у меня уже сложилось впечатление - он вроде сжимает намного быстрее чем rar/7z/xz, но намного медленнее чем gzip/zip, при этом размер архива получается не намного лучше, чем у gzip/zip. Если я хочу сжать что-то хорошо и у меня есть на это время, скорее всего я выберу 7z. Если уж сжать файлы надо как можно быстрее, я выберу Gzip или ZIP. У Gzip, кстати, есть большой бонус перед ZIP - он сохраняет всю информацию о владельцах файлов и правах, чего не делает ZIP (как и 7z, кстати, но об этом позже).
    На средних настройках размер архивов (как и время) получился практически идентичным предыдущим.
    А вот в режиме быстрого сжатия RAR приятно удивил - сжал быстрее и лучше всех остальных. Bzip2 в быстром режиме сжал даже хуже, чем Gzip/ZIP. На распаковку архива Bzip2 потратил куда больше времени, чем все остальные архиваторы. А XZ распаковывал архив заметно быстрее чем 7z.

    Тест №4. Сжатие исходников ядра Linux

    Один из стандартных способов проверить качество алгоритма сжатия данных - исходники ядра.
    Имеется:
    Исходники linux-2.6.33. Это около 31 тысячи файлов суммарным объемом 432МБ.
    Так как файлов много, я использовал опцию solid (непрерывный архив) у RAR. 7z создает solid-архив по умолчанию. Так же было решено использовать tar+rar и tar+zip. Результаты, кстати, неожиданные:)

    Режим максимального сжатия: Хорошие результаты у RAR. Правда у варианта TAR+RAR архивы весят меньше, чем у RAR с опцией "solid" =)
    Среднее сжатие: Bzip2 внезапно выступил лучше RAR, сильно обогнав его по скорости и сжав почти так же хорошо.
    Режим быстрого сжатия: Тут Bzip2 снова сжал лучше чем RAR, правда у него (Bzip2) это получилось медленнее всех. Лучшие результаты на мой взгляд у 7z.
    Распаковка архивов: Архивы сжатые максимально, RAR распаковывал очень долго по сравнению с другими. 7z/XZ распаковали в 10 раз быстрее чем RAR, а Gzip - просто молниеносно.

    Тест №5. Несжатые документы

    Текстовые документы, такие как TXT, ODF, DOC. Предполагаю, что результаты будут аналоничны тесту №4:)
    Имеется:
    В основном файлы DOC. На этом компьютере я документов не храню, поэтому их пришлось качать из сети, а ODF найти труднее. Также несколько увесистых TXT файлов-словарей, RTF и HTML файлы. В сумме 66МБ.


    Режим наилучшего сжатия: Лучше всех получилось у RAR. Bzip2 как всегда где-то посередине.
    Режим среднего сжатия: Лучше всего сжали файлы 7z/XZ, но у них это заняло много времени. Bzip2 сжал намного быстрее и почти так же хорошо, как RAR
    Режим быстрейшего сжатия: Первый раз, когда Bzip2 сжал лучше (хотя не быстрее) чем 7z/XZ.
    Распаковка архивов: Архив, сжатый в максимальном режиме, RAR распаковывал очень долго. Вообще это уже не в первый раз. Ну и Bzip2 как всегда не самый быстрый по распаковке архивов.

    Тест №6. Огромное кол-во маленьких текстовых файлов - Gentoo Portage

    Имеется: 116 тысяч файлов общим объемом 600МБ.


    Режим максимальной компрессии: Самый маленький архив получился у 7z, да и по времени он справился в 2 раза быстрее чем XZ. У Bzip2 наверно лучший результат в плане скорость/сжатие
    Режим среднего сжатия: у Bzip2, на мой взгляд, результат лучше чем у RAR. Лучше всего сжал по-прежнему 7z.
    Быстрое сжатие: Лучший результат у XZ. 7z сжал на 6МБ лучше чем XZ, но и на 21сек медленнее. Распаковка архивов: я считаю, что лучше всех тут справился XZ. RAR как всегда медленно распаковывает архивы, сжатые максимально.

    Итак, подведем итоги . Кто же является лучшим архиватором на свете?
    Ответа на этот вопрос я не дам:Р Скажу одно - если вам важна скорость сжатия - используйте Gzip, если вам нужно максимально сжать файлы - используйте XZ или 7z. Лично я бы выбрал 7z, т.к. в основном он слегка быстрее архивирует чем XZ. Но, не забывайте, что такие архиваторы как RAR, ZIP и 7z не сохраняют полную информацию о владельцах файлов, правах и т.д. RAR-у можно указать соответствующие настройки при создании и распаковке архива, но легче просто создать TAR архив и его уже сжать. В мануале к 7z прямо сказано - для бэкапа системы сначала создайте архив TAR, а затем сожмите его в 7z.
    Весело было наблюдать, как связка TAR+RAR частенько работает лучше чем RAR в одиночку:) Вообще TAR создает один файл (архив) из многих ровно настолько быстро, насколько это позволяет ваш жесткий диск, при этом почти не напрягая процессор.

    Gzip или ZIP? Gzip! Результаты те же, но Gzip сохраняет всю дополнительную информацию о файлах.
    XZ или 7z ? Если вам не нужно сохранять информацию о владельцах файлов, используйте 7z. Если нужно - создавайте XZ архивы через TAR.
    RAR? . Если честно, я ожидал от него худших результатов, но RAR показал себя в принципе неплохо. Разве что он платный;)
    Bzip2? . Этот архиватор вызвал у меня двойственные чувства. С одной стороны он сжимает быстрее чем XZ/7z/RAR, но с другой - он лишь ненамного лучше сжимает чем Gzip/ZIP и делает это заметно медленнее последних. В одних тестах он показал себя хорошо, в других он сжимал медленнее и хуже, чем 7z на самых быстрых настройках. Именно из-за этой его непостоянности лично я откажусь от его использования в пользу 7z/XZ.

    Но в конечном счете решать Вам. Удачи!

    Возможно, эти материалы Вас заинтересуют.

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

    В этой инструкции я хочу подробно рассмотреть утилиты для архивирования в Linux, мы рассмотрим не только самую популярную и универсальную утилиту - tar, но и другие менее известные, а также популярные алгоритмы сжатия.

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

    Самой популярной для Linux утилитой для архивации есть tar. Она используется почти везде, для архивации исходников, упаковки пакетов. Для сжатия используются другие утилиты, в зависимости от алгоритма сжатия, например, zip, bz, xz, lzma и т д. Сначала выполняется архивация, затем сжатие, отдельными программами. Автоматический запуск некоторых утилит сжатия для только что созданного архива поддерживается в tar и других подобных программах с помощью специальных опций.

    Также полезной возможностью архивации есть шифрование. Но теперь давайте рассмотрим какие существуют утилиты, с помощью которых выполняется архивирование файлов linux и как ими пользоваться.

    Tar

    Tar - это стандартная утилита, с помощью которой выполняется архивирование файлов Linux. Постепенно из небольшой программы архивации она превратилась в мощный инструмент, поддерживающий работу со многими вариантами архивов и алгоритмами сжатия. Программа поддерживает большое количество параметров. Давайте рассмотрим ее синтаксис и основные параметры:

    $ tar опцииf файл_для_записи /папка_файлами_для_архива

    А теперь разберем основные опции:

    • A - добавить файл к архиву
    • c - создать архив в linux
    • d - сравнить файлы архива и распакованные файлы в файловой системе
    • j - сжать архив с помощью Bzip
    • z - сжать архив с помощью Gzip
    • r - добавить файлы в конец архива
    • t - показать содержимое архива
    • u - обновить архив относительно файловой системы
    • x - извлечь файлы из архива
    • v - показать подробную информацию о процессе работы
    • f - файл для записи архива
    • -C - распаковать в указанную папку
    • --strip-components - отбросить n вложенных папок

    Теперь давайте рассмотрим архивирование файлов в Linux. Чтобы создать архив используйте такую команду:

    tar -cvf archive.tar.gz /path/to/files

    А чтобы распаковать архив tar linux:

    tar -xvf archive.tar.gz

    Очень просто запомнить для упаковки используется опция c - C reate, а для распаковки - x - eX tract.

    Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:

    tar -zcvf archive.tar.gz /path/to/files

    $ tar -zxvf archive.tar.gz

    Например, рассмотрим как заархивировать папку в Linux:

    tar -zcvf home.tar.gz ~/

    Хотя можно поступить по-другому, тот же архив мы получим если сначала создать обычный архив с помощью tar, а потом сжать его утилитой для сжатия, только здесь мы получаем больше контроля над процессом сжатия:

    gzip archive.tar

    Также можно убрать сжатие:

    gunzip archive.tar.gz

    Утилиты сжатия мы рассмотрим ниже.

    Чтобы добавить файл в архив используйте:

    tar -rvf archive.tar file.txt

    Для извлечения одного файла синтаксис тот же:

    tar -xvf archive.tar file.txt

    Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечем все php файлы:

    tar -xvf archive.tar --wildcards "*.php"

    По умолчанию распаковать архив tar linux можно в текущую папку с именем архива, чтобы распаковать в нужную папку используйте ключ -C:

    tar -xvf archive.tar -C /path/to/dir

    Стандартную утилиту рассмотрели, теперь кратко рассмотрим ее альтернативы. Их не так много, и большинство из них уже устаревшие.

    Shar

    Shar позволяет создавать самораспаковывающиеся архивы. По сути, это скрипт оболочки, и для распаковки ему необходима оболочка Bash или другая совместимая с Bourne Shell. У Shar есть несколько преимуществ, но также он потенциально небезопасный, так как архив представляет собой исполняемый файл.

    Опции shar:

    • -o - сохранять архив в файл вместо стандартного вывода
    • -l - ограничить размер выходного файла
    • -L - ограничить размер выходного файла и разбить его на части
    • -n - имя архива не будет включено в заголовок
    • -a - разрешить автоматическую генерацию заголовков

    Примеры использования shar для того чтобы заархивировать папку linux:

    Создаем shar архив:

    shar file_name.extension > filename.shar

    Распаковываем shar архив:

    Ar

    ar - утилита для создания и управления архивами. В основном используется для архивации статических библиотек, но может быть использована для создания любых архивов. Раньше использовалась довольно часто но была вытеснена утилитой tar. Сейчас используется только для создания и обновления файлов статических библиотек.

    • - d - удалить модули из архива
    • - m - перемещение членов в архиве
    • - p - напечатать специфические члены архива
    • - q - быстрое добавление
    • - r - добавить члена к архиву
    • - s - создать индекс архива
    • - a - добавить новый файл к существующему архиву

    Теперь рассмотрим примеры использования. Создадим статическую библиотеку libmath.a из объектных файлов substraction.o и division.o:

    ar cr libmath.a substraction.o division.o

    Теперь извлечем файлы из архива:

    Таким образом, можно распаковать любую статическую библиотеку.

    Cpio

    cpio - означает Copy in and out (скопировать ввод и вывод). Это еще один стандартный архиватор для Linux. Активно используется в менеджере пакетов Red Hat, а также для создания initramfs. Архивация в Linux для обычных файлов с помощью этой программы не применяется.

    Опции утилиты:

    • -a - сбросить время обращения к файлам после их копирования
    • -A - добавить файл
    • -d - создать каталоги при необходимости

    Пример использования. Создаем cpio архив:

    file1.o file2.o file3.o

    ls | cpio -ov > /path/to/output_folder/obj.cpio

    Распаковываем архив:

    cpio -idv < /path/to folder/obj.cpio

    Архивирование папки linux выполняется также само.

    Сжатие архивов в Linux

    Как создать архив в linux рассмотрели. Теперь давайте поговорим о сжатии. Как я говорил, для сжатия используются специальные утилиты. Рассмотрим кратко несколько из них

    Gzip

    Чаще всего применяется Gzip. Это стандартная утилита сжатия в Unix/Linux. Для декомпрессии используется gunzip или gzip -d Сначала рассмотрим ее синтаксис:

    $ gzip опции файл

    $ gunzip опции файл

    Теперь разберем опции:

    • -c - выводить архив в стандартный вывод
    • -d - распаковать
    • -f - принудительно распаковывать или сжимать
    • -l - показать информацию об архиве
    • -r - рекурсивно перебирать каталоги
    • -0 - минимальный уровень сжатия
    • -9 - максимальный уровень сжатия

    Примеры использования вы уже видели в описании утилиты tar. Например, выполним сжатие файла:

    gzip -c файл > архив.gz

    А теперь распакуем:

    gunzip -c архив.gz

    Но чтобы сжать папку в Linux вам придется сначала заархивировать ее с помощью tar, а уже потом сжать файл архива с помощью gzip.

    Bzip

    bzip2 - еще одна альтернативная утилита сжатия для Linux. Она более эффективная чем gzip, но работает медленнее. Для распаковки используйте утилиту bunzip2.

    Описывать опции bzip2 я не буду, они аналогичны gzip. Чтобы создать архив в Linux используйте:

    В текущем каталоге будет создан файл file.bz2

    Lzma

    Новый и высокоэффективный алгоритм сжатия. Синтаксис и опции тоже похожи на Gzip. Для распаковки используйте unlzma.

    Xz

    Еще один высокоэффективный алгоритм сжатия. Обратно совместимый с Lzma. Параметры вызова тоже похожи на Gzip.

    Zip

    Кроссплатформенная утилита для создания сжатых архивов формата zip. Совместимая с Windows реализациями этого алгоритма. Zip архивы очень часто используются для обмена файлами в интернете. С помощью этой утилиты можно сжимать как файлы, так и сжать папку linux.

    Синтаксис утилиты:

    $ zip опции файлы

    $ unzip опции архив

    Опции утилиты:

    • -d удалить файл из архива
    • -r - рекурсивно обходить каталоги
    • -0 - только архивировать, без сжатия
    • -9 - наилучший степень сжатия
    • -F - исправить zip файл
    • -e - шифровать файлы

    Чтобы создать Zip архив в Linux используйте.