5 Best Methods to Extract .gz File in Linux Using gunzip, gzip and tar tool
In this article, I will take you through 5 Best Methods to extract .gz file in Linux using gunzip, gzip and tar tool. If you need to send a very large file over a network or through some share network then it is always recommended to compress that file using .gz compression to reduce the size and then send it over. This greatly helps the sender in sending a large file.
At the receiver end same file needs to be extracted to the original file so that it will be used at the receiving end. To do the compression and extraction of the files, you can use various combinations of gzip, tar and gunzip tool. I have explained all the combinations in detail with the help of examples in below section which you can use as per tool availability and requirement.

Extract .gz File in Linux using gzip, tar and gunzip command
Before going through the usage of gunzip command to extract .gz file you need to first understand the different methods through which .gz compression can be created. There are two popular tools which can be used to create .gz compression in Linux — gzip and tar tool. Similarly you can use gunzip, gzip and tar tool to extract .gz file.
Method 1: Create .gz file using gzip command and extract .gz file using gunzip command
To demonstrate the usage of gzip tool to compress the file in .gz format and gunzip to extract .gz file we will use a small CentOS ISO Image of size 140M as shown below. Here size of CentOS.ISO image can be checked using du -sh CentOS.ISO command.
Now if you apply .gz compression on CentOS ISO Image using gzip -v CentOS.ISO command then you will see a file generated CentOS.ISO.gz replacing the source file CentOS.ISO .
-v : Verbose. Display the name and percentage reduction for each file compressed or decompressed.
As you can see above the generated CentOS.ISO.gz image will be 4.4% smaller than the source file CentOS.ISO. This you can verify by using du -sh CentOS.ISO.gz command as shown below.
If you want to extract the CentOS.ISO.gz file then you need to use below gunzip -v CentOS.ISO.gz command. This command will give you the Original Source File CentOS.ISO by replacing the previous compressed file as shown in the output.
-v : Verbose. Display the name and percentage reduction for each file compressed or decompressed.
Method 2: Create .gz file using tar command and extract .gz file using tar command
Like gzip you have another very useful tool available in most of the Linux based system is the tar tool. You can also compress any files to .gz extension using tar command in Linux. Here also we will use the same CentOS ISO image to demonstrate the extraction of .gz file. First you need to verify the size of the source ISO image file using du -sh CentOS.ISO command as shown below.
Then you can compress the ISO image using tar -czvf CentOS.ISO.gz CentOS.ISO command as shown below. This command won’t replace the Original file like in case of gzip tool instead it will create a separate output file CentOS.ISO.gz as you have specified in the command.
-c : create a new archive.
-z : filter the archive through gzip.
-v : verbosely list files processed.
-f : use archive file or device ARCHIVE. More can be checked on tar command Man Page.
If you check the size of this .gz file using du -sh CentOS.ISO.gz command then you can see it is also compressed by 4.4% from the Source File.
Now if you want to extract .gz file then you can use same tar tool to extract the file by using tar -zxvf CentOS.ISO.gz command as shown below.
After extraction if you check the size of the Original File then it will show as 140M which is actual size when we compressed it in the beginning.
Method 3: Create .gz file using tar command and extract .gz file using gunzip command
Another method that can be used is that compress the source file to .gz using tar command and extract using gunzip command as described below. Like previous methods, you can check the size of Source File using du -sh CentOS.ISO command.
Then compress the source file in .gz format using tar -cvzf CentOS.ISO.gz CentOS.ISO command as shown below.
If you check the size of compressed file CentOS.ISO.gz image then it will be around 134M which will be 4.4% lesser than the Original File.
To extract the file in this method you can use gunzip -v CentOS.ISO.gz command as shown below. This command will extract the CentOS.ISO image and will replace the compressed ISO file.
If you again check the size of extracted ISO file then it will show around 140M which was the original size. Hence we extracted the file successfully.
Команда Gzip в Linux
Gzip — один из самых популярных алгоритмов сжатия, который позволяет уменьшить размер файла и сохранить исходный режим файла, право собственности и временную метку.
Gzip также относится к .gz файлов .gz и утилите gzip которая используется для сжатия и распаковки файлов.
В этом руководстве мы покажем вам, как использовать команду gzip .
Синтаксис команды gzip
Общий синтаксис команды gzip следующий:
Gzip сжимает только отдельные файлы и создает сжатый файл для каждого заданного файла. По соглашению, имя файла, сжатого с помощью Gzip, должно заканчиваться на .gz или .z .
Если вы хотите сжать несколько файлов или каталогов в один файл, сначала вам нужно создать архив Tar, а затем сжать файл .tar с помощью Gzip. Файл с .tar.gz или .tgz представляет собой архив Tar, сжатый с помощью Gzip.
Gzip чаще всего используется для сжатия текстовых файлов, архивов Tar и веб-страниц. Не используйте Gzip для сжатия изображений, аудио, документов PDF и других двоичных файлов, поскольку они уже сжаты.
gzip может сжимать только обычные файлы. Символьные ссылки игнорируются.
Сжатие файлов с помощью gzip
Чтобы сжать отдельный файл, вызовите команду gzip за которой следует имя файла:
gzip создаст файл filename.gz и удалит исходный файл.
По умолчанию gzip сохраняет в сжатом файле метку времени, режим, владельца и имя исходного файла.
Сохраните исходный файл
Если вы хотите сохранить исходный (исходный) файл, используйте параметр -k :
Другой вариант сохранить исходный файл — использовать параметр -c который сообщает gzip о необходимости записи в стандартный вывод и перенаправления вывода в файл:
Подробный вывод
Используйте параметр -v если вы хотите увидеть процентное сокращение и имена обрабатываемых файлов:
Сжать несколько файлов
Вы также можете передать несколько файлов в качестве аргументов команде. Например, чтобы сжать файлы с именами file1 , file2 , file3 , вы должны выполнить следующую команду:
Приведенная выше команда создаст три сжатых файла: file1.gz , file2.gz , file3.gz .
Сжать все файлы в каталоге
Чтобы сжать все файлы в данном каталоге, используйте параметр -r :
gzip будет рекурсивно проходить по всей структуре каталогов и сжимать все файлы в каталоге и его подкаталогах.
Измените уровень сжатия
gzip позволяет указать диапазон уровней сжатия от 1 до 9. -1 или —fast означает самую высокую скорость сжатия с минимальной степенью сжатия, -9 или —best указывает на самую —best скорость сжатия с максимальной степенью сжатия. Уровень сжатия по умолчанию -6 .
Например, чтобы получить максимальное сжатие, вы должны запустить:
Сжатие — это задача, интенсивно использующая процессор, и чем выше уровень сжатия, тем больше времени занимает процесс.
Стандартный ввод
Чтобы создать файл .gz из стандартного .gz , перенаправьте вывод команды в gzip . Например, чтобы создать резервную копию базы данных MySQL в формате Gzip, вы должны выполнить:
Вывод команды mysqldump будет вводиться для gzip .
Распаковка файлов с помощью gzip
Чтобы распаковать файл .gz , используйте параметр -d :
Другая команда, которую вы можете использовать для распаковки Gzip-файла, — это gunzip . Эта команда в основном является псевдонимом для gzip -d :
Возможно, вам будет проще запомнить gunzip чем gzip -d .
Сохраните сжатый файл
Как и при сжатии файла, параметр -k сообщает gzip нужно сохранить входной файл, в данном случае это сжатый файл:
Распаковать несколько файлов
Чтобы распаковать сразу несколько файлов, передайте имена файлов в gzip качестве аргументов:
Распаковать все файлы в каталоге
При использовании с параметрами -d и -r gzip рекурсивно распаковывает все файлы в указанном каталоге:
Список содержимого сжатого файла
При использовании с параметром -l gzip показывает статистику по данным сжатым файлам:
Вывод будет включать имя несжатого файла, сжатый и несжатый размер и степень сжатия:
Чтобы получить дополнительную информацию, добавьте параметр -v :
Выводы
С помощью Gzip вы можете уменьшить размер данного файла. Команда gzip позволяет сжимать и распаковывать файлы.
Для получения дополнительной информации о команде gzip обратитесь к странице документации Gnu gzip .
How To Unzip/Extract Gz File In Linux?
Gzip is a popular compression algorithm and tool used to compress files to reduce file sizes? The gzip compression is very popular in Linux and Unix-based operating systems and distributions. The gzip files generally have the *.gz or *.z extension. In this tutorial, we explain how to extract or unzip the gzip files by using different commands like gzip , gunzip and zcat .
List gz File Contents
Before unzipping or extracting the gz file we generally list the file contents or files and folders. The gzip command is used to list gz file contents. The -l option is provided like below.
List gz File Contents
Unzip gz File
The gz file can be unzipped by using the gzip command. The gzip command is provided by popular Linux distributions Ubuntu, Kali, Mint, Fedora, CentOS, and MacOSX, etc. The decompress option is -d to unzip gz files. By default, the gz file is deleted after unzipping it.
Keep Unzipped gz File
By defualt after unzipping the gz file the gz file is deleted automatically. But we can prevent this removal by using the -k option which preserves the gz file after decompression.
Unzip gz File with gunzip Command
The gunzip command can be also used to unzip the gz file. Actually the gunzip is the the gzip command with some decompression options. But it is easier to remember and easy to used as we do not need to provide any option. We just provide the gz file name and the file is unzipped.
Unzip gz File with zcat Command
The zcat is a comprassion command which is created for z compression. But it also supports other compression algorithms like gzip and gz files. We can use the zcat command in order to unzip the gz file. The zcat command
Архивирование файлов в Linux
В наши дни мы сталкиваемся с файлами архивов очень часто и на всех платформах: Windows, Mac или Linux. Это могут быть программы, резервные копии систем или баз данных или просто архив файлов. Нам также часто приходится создавать свои архивы в Linux, чтобы передать несколько файлов друзьям или загрузить на файлообменник. В виде архивов распространяются пакеты программ, исходные коды, а также много других файлов, распространяемых на просторах интернета. Научиться выполнять архивирование файлов в Linux через терминал очень важно, возможно это вам понадобиться, когда не будет доступа к графическому интерфейсу, или просто со временем в терминале станет более приятно работать.
В этой инструкции я хочу подробно рассмотреть утилиты для архивирования в Linux, мы рассмотрим не только самую популярную и универсальную утилиту — tar, но и другие менее известные, а также популярные алгоритмы сжатия.
Архивирование в Linux
Важно отметить, что архивирование в linux это не одно и то же что и сжатие файлов linux. Архивирование — это объединение нескольких небольших файлов в один, с целю более удобной последующей передачи, хранения, шифрования или сжатия. Как я уже сказал, архивация выполняется специальными утилитами. Мы не будем трогать архивацию файлов в графическом интерфейсе, вы с ними разберетесь сами, наша тема — терминал.
Самой популярной для Linux утилитой для архивации есть tar. Она используется почти везде, для архивации исходников, упаковки пакетов. Для сжатия используются другие утилиты, в зависимости от алгоритма сжатия, например, zip, bz, xz, lzma и т д. Сначала выполняется архивация, затем сжатие, отдельными программами. Автоматический запуск некоторых утилит сжатия для только что созданного архива поддерживается в tar и других подобных программах с помощью специальных опций.
Также полезной возможностью архивации есть шифрование. Но теперь давайте рассмотрим какие существуют утилиты, с помощью которых выполняется архивирование файлов linux и как ими пользоваться.
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 — Create, а для распаковки — x — eXtract.
Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:
tar -zcvf archive.tar.gz /path/to/files
$ tar -zxvf archive.tar.gz
Например, рассмотрим как заархивировать папку в Linux:
tar -zcvf home.tar.gz
Хотя можно поступить по-другому, тот же архив мы получим если сначала создать обычный архив с помощью tar, а потом сжать его утилитой для сжатия, только здесь мы получаем больше контроля над процессом сжатия:
Также можно убрать сжатие:
Утилиты сжатия мы рассмотрим ниже.
Чтобы добавить файл в архив используйте:
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 позволяет создавать самораспаковывающиеся архивы. По сути, это скрипт оболочки, и для распаковки ему необходима оболочка Bash или другая совместимая с Bourne Shell. У Shar есть несколько преимуществ, но также он потенциально небезопасный, так как архив представляет собой исполняемый файл.
- -o — сохранять архив в файл вместо стандартного вывода
- -l — ограничить размер выходного файла
- -L — ограничить размер выходного файла и разбить его на части
- -n — имя архива не будет включено в заголовок
- -a — разрешить автоматическую генерацию заголовков
Примеры использования shar для того чтобы заархивировать папку linux:
Создаем shar архив:
shar file_name.extension > filename.shar
Распаковываем shar архив:
ar — утилита для создания и управления архивами. В основном используется для архивации статических библиотек, но может быть использована для создания любых архивов. Раньше использовалась довольно часто но была вытеснена утилитой tar. Сейчас используется только для создания и обновления файлов статических библиотек.
- — d — удалить модули из архива
- — m — перемещение членов в архиве
- — p — напечатать специфические члены архива
- — q — быстрое добавление
- — r — добавить члена к архиву
- — s — создать индекс архива
- — a — добавить новый файл к существующему архиву
Теперь рассмотрим примеры использования. Создадим статическую библиотеку libmath.a из объектных файлов substraction.o и division.o:
ar cr libmath.a substraction.o division.o
Теперь извлечем файлы из архива:
Таким образом, можно распаковать любую статическую библиотеку.
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. Это стандартная утилита сжатия в Unix/Linux. Для декомпрессии используется gunzip или gzip -d Сначала рассмотрим ее синтаксис:
$ gzip опции файл
$ gunzip опции файл
Теперь разберем опции:
- -c — выводить архив в стандартный вывод
- -d — распаковать
- -f — принудительно распаковывать или сжимать
- -l — показать информацию об архиве
- -r — рекурсивно перебирать каталоги
- -0 — минимальный уровень сжатия
- -9 — максимальный уровень сжатия
Примеры использования вы уже видели в описании утилиты tar. Например, выполним сжатие файла:
gzip -c файл > архив.gz
А теперь распакуем:
gunzip -c архив.gz
Но чтобы сжать папку в Linux вам придется сначала заархивировать ее с помощью tar, а уже потом сжать файл архива с помощью gzip.
bzip2 — еще одна альтернативная утилита сжатия для Linux. Она более эффективная чем gzip, но работает медленнее. Для распаковки используйте утилиту bunzip2.
Описывать опции bzip2 я не буду, они аналогичны gzip. Чтобы создать архив в Linux используйте:
В текущем каталоге будет создан файл file.bz2
Новый и высокоэффективный алгоритм сжатия. Синтаксис и опции тоже похожи на Gzip. Для распаковки используйте unlzma.
Еще один высокоэффективный алгоритм сжатия. Обратно совместимый с Lzma. Параметры вызова тоже похожи на Gzip.
Кроссплатформенная утилита для создания сжатых архивов формата zip. Совместимая с Windows реализациями этого алгоритма. Zip архивы очень часто используются для обмена файлами в интернете. С помощью этой утилиты можно сжимать как файлы, так и сжать папку linux.
$ zip опции файлы
$ unzip опции архив
- -d удалить файл из архива
- -r — рекурсивно обходить каталоги
- -0 — только архивировать, без сжатия
- -9 — наилучший степень сжатия
- -F — исправить zip файл
- -e — шифровать файлы
Чтобы создать Zip архив в Linux используйте:
zip -r /path/to/files/*
А для распаковки:
Как видите архивирование zip в Linux не сильно отличается от других форматов.
Выводы
Теперь вы знаете все что нужно об архивации файлов в Linux. Мы рассмотрели только консольные команды, так сказать, чтобы была понятна суть. В графическом интерфейсе все еще проще. Если остались вопросы — задавайте их в комментариях.
Похожие записи
Оцените статью
alt=»Creative Commons License» width=»» />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
16 комментариев к “Архивирование файлов в Linux”
На Linux перешел недавно и во многом пока чуток туплю(
Спасибо автору за отличный пост выше!
Если можно, кто нибудь посоветуйте оболочку для архиваторов аля винрар или чтонить в этом роде, но для Linux.
Через терминал поставил p7zip-full и p7zip-rar, но все архивы создаются дефолтами и не могу задать ни степень сжатия ни сменить некоторые опции для упаковки
Peazip, ark, file-roller
Ребята подскажите как распаковать зип архив в папку /var/www/example.com ? просто так в ту директорию ничего не перетащить и собственно конечную папку пришлось через терминал создавать с чем я справился но вот с распаковкой туда архива prestashop_1_6_1_5.zip у меня ничего не выходит
выше из ситуации следующим способом: Распаковал архив в удобном месте и применил команду sudo cp -rp /откуда/скопировать/* /куда/скопировать
Звёздочка означает что нужно скопировать всё содержимое директории.
Можно запустить файловый менеджер с правами root (kdesu/gksu) тогда сможете работать с любой папкой.
zip -r /path/to/files/*
команда не правильная, правильно писать так
zip -r archive.zip /path/to/files/*
Как сделать с помощью ZIP архивацию файла в конкретную директорию?
Например мне нужно за архивировать файл что находится /opt/1.sh и что бы он за архивировался в папку /home/
про pax не забывайте, тоже довольно интересный архиватор
>Чтобы создать архив используйте такую команду:
>tar -cvf archive.tar.gz /path/to/files
Почему расширение tar.gz, должно быть по идее .tar?
>Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:
опечатка в слове gizp. Должно быть gzip
Как делать поиск по тексту в зипах?
У меня несколько тысяч зазипованных книг, распаковывать все нереально.
У Вас написано про опции zip/unzip
-d удалить файл из архива
проверяем:
unzip -h
-d extract files into exdir по-моему это совсем не удаление
PS у меня Ubuntu
Вдогонку
zip -h
-d delete entries in zipfile
Получается, что вы тоже правы, но тем не менее желательно уточнить к какой команде (zip/unzip) относится приведенная в статье опция — d
Уточнение
zip -h
-d delete entries in zipfile
unzip -h
-d extract files into exdir
По-моему опции нужно расписать отдельно для каждой команды
дд, linux-redhat
есть папка с архивами (7z и Zip), необходимо написать баш файл в котором циклом пройтись по всем архивам и вытащить список содержимого архива в отдельный файл,
например есть /tmp/arc1.7z в котором 3 файла 1.txt, 2.txt, 3.txt.
нужен конечный файл arc1.txt в котором список этих файлов..
этот код не работает, что не так делаю?
getlist1=»7za l»
getlist2=»>»
input=$<1>
output=$<2>
glist() <
echo «Get list:»
for file in $*.7z; do
filelist=$
Спасибо за подробную статью.
Хотел бы попросить добавить в раздел об утилите Zip, что нужно прописать сначала имя файла, который будет у нас в качестве созданного архива, а уже потом какие файлы мы хотим заархивировать.