Разархивировать tar gz linux
Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.
Создание и распаковка архивов
Создать
Создание выполняется с ключом c. Синтаксис следующий:
tar -c<опции> <новый архивный файл> <что сжимаем>
tar -czvf archive.tar.gz /home/dmosk
* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).
Распаковать
Распаковка выполняется с ключом x с синтаксисом:
tar -x<опции> <архивный файл>
tar -xvf archive.tar.gz
Примеры
Распаковка .gz файла:
tar -xvf archive.tar.gz
* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.
tar -xvjf archive.tar.bz2
* ключ j отвечает за работу с bz2.
Если система ругается на bzip2, значит нужно его установить:
yum install bzip2
apt-get install bzip2
pkg install bzip2
* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).
Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:
bzip2 -d archive.tar.bz2
tar -xvzf archive.tar.gzip
* ключ z отвечает за работу с gzip.
Распаковывается, как gzip:
tar -xvzf archive.tgz
Распаковать в определенную папку
tar -C /home/user -xvf archive.tar.gz
* ключ -C используется для указания папки, куда необходимо распаковать файлы из архива.
Распаковка без вложенной папки
Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:
tar -C /home/admin/mytar -xvf admin.tar.gz --strip-components 1
* каталог /home/admin/mytar заранее должен быть создан; --strip-components 1 пропустит одну вложенную папку внутри архива.
Исключение файлов по маске
Если необходимо пропустить некоторые файлы, вводим команду с ключом --exclude:
* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.
Также можно исключить несколько файлов или папок, добавляя несколько опций exclude:
* в данном примере мы исключим папку recycle и файлы, которые заканчиваются на .tmp
Работа с архивами, разбитыми на части
Разбить архив на части может понадобиться по разным причинам — нехватка места на носителе, необходимость отправки файлов по почте и так далее.
Чтобы создать архив, разбитый на части, вводим команду:
tar -zcvf - /root | split -b 100M - root_home.tar.gz
* данная команда создаст архив каталога /root и разобьет его на части по 100 Мб.
В итоге мы получим, примерно, такую картину:
root_home.tar.gzaa root_home.tar.gzac root_home.tar.gzae
root_home.tar.gzag root_home.tar.gzai root_home.tar.gzab
root_home.tar.gzad root_home.tar.gzaf root_home.tar.gzah
Чтобы собрать архив и восстановить его, вводим команду:
cat root_home.tar.gz* | tar -zxv
Описание ключей tar
Команды для действия
Ключ | Описание |
---|---|
-A | Добавление файлов в архив. |
-c | Создание нового архивного файла. |
-d | Показать отличающиеся данные между каталогом-исходником и содержимым архива. |
--delete | Удалить файлы внутри архива. |
-r | Добавить файлы в конец архива. |
-t | Показать содержимое архива. |
-u | Добавить файлы, которых нет в архиве. |
-x | Извлечь файлы из архива. |
* нельзя использовать несколько вышеперечисленных ключей в одной команде.
Дополнительные опции
Ключ | Описание |
---|---|
--atime-preserve | Оставить прежнюю метку времени доступа для файла. |
-b N | Задать размер блока N x 512. |
-C | Смена каталога. По умолчанию, используется тот, в котором мы находимся. |
--checkpoint | Показать имена папок при чтении архивного файла. |
-G | Использование старого формата инкрементального резервирования при отображении или извлечения. |
-g | Использование нового формата инкрементального резервирования при отображении или извлечения. |
-h | Не дублировать символьные ссылки. Только файлы, на которые указывают эти симлинки. |
-i | Игнорировать блоки нулей. |
-j | Использование bzip2. |
--ignore-failed-read | Игнорировать не читаемые файлы. |
-k | При распаковке, существующие файлы не заменяются соответствующими файлами из архива. |
-L N | Смена магнитной ленты после N*1024 байт. |
-m | При извлечении игнорировать время модификации объекта. |
-M | Многотомные архивы. |
-N DATE | Сохранять только более новые файлы относительно DATE |
-O | Направление извлекаемого на стандартный вывод. |
-p | Извлечение защищенной информации. |
-P | Не отбрасывает начальный слэш (/) из имен. |
-s | Сортировка файлов при извлечении. |
--preserve | Аналогично -ps |
--remove-files | Удалить исходные файлы после добавления в архив. |
--same-owner | Сохранить владельца при извлечении. |
--totals | Вывод байт при создании архива. |
-v | Протоколирование действий — отображение списка объектов, над которыми происходит действие. |
-V NAME | Создание архива на томе с меткой NAME. |
--version | Показать версию tar. |
-w | Требовать подтверждения для каждого действия. |
-W | Проверка архива после записи. |
--exclude FILE | Исключить файл FILE. |
-X FILE | Исключить файлы FILE. |
-Z | Фильтрует архив с помощью compress. |
-z | Использование gzip. |
* актуальный список опций можно получить командой man tar.
Tar не работает с zip-архивами. В системах UNIX для этого используем утилиты zip и unzip. Для начала, ставим нужные пакеты:
yum install zip unzip
apt-get install zip unzip
pkg install zip unzip
* соответственно, для RPM based, deb based, BSD based.
zip -r archive.zip /home/dmosk
* создает архив каталога /home/dmosk в файл archive.zip.
Windows
В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip.
Если вы путешествуете по миру открытого исходного кода, скорее всего, вы регулярно сталкиваетесь с файлами .tar.gz . Пакеты с открытым исходным кодом обычно доступны для загрузки в форматах .tar.gz и .zip.
Команда tar используется для создания архивов tar путем преобразования группы файлов в архив. Он поддерживает широкий спектр программ сжатия, таких как gzip, bzip2, lzip, lzma, lzop, xz и compress. Изначально Tar был разработан для создания архивов для хранения файлов на магнитной ленте, поэтому он получил название « T ape AR chive».
Короче говоря, файл с расширением .tar.gz представляет собой архив .tar, сжатый с помощью gzip.
tar можно также использовать для извлечения архивов tar, отображения списка файлов, включенных в архив, добавления дополнительных файлов к существующему архиву, а также для различных других операций.
В этом руководстве мы покажем вам, как распаковать (или распаковать) архивы tar.gz и tgz .
Извлечение файла tar.gz
В большинстве дистрибутивов Linux и macOS по умолчанию предустановлена команда tar .
Чтобы извлечь файл tar.gz, используйте параметр --extract ( -x ) и укажите имя файла архива после параметра f :
Команда tar автоматически определит тип сжатия и распакует архив. Эту же команду можно использовать для извлечения архивов tar, сжатых с помощью других алгоритмов, таких как .tar.bz2 .
Если вы пользователь рабочего стола и командная строка вам не подходит, вы можете использовать файловый менеджер. Чтобы распаковать (разархивировать) файл tar.gz, просто щелкните правой кнопкой мыши файл, который вы хотите извлечь, и выберите «Извлечь». Пользователям Windows потребуется инструмент под названием 7zip для извлечения файлов tar.gz.
Параметр -v сделает команду tar более видимой и напечатает имена файлов, извлекаемых на терминале.
По умолчанию tar извлекает содержимое архива в текущий рабочий каталог . Используйте --directory ( -C ) для извлечения архивных файлов в определенный каталог:
Например, чтобы извлечь содержимое архива в /home/linuxize/files , вы можете использовать:
Извлечение определенных файлов из файла tar.gz
Чтобы извлечь определенный файл (ы) из файла tar.gz, добавьте разделенный пробелами список имен файлов, которые нужно извлечь, после имени архива:
При извлечении файлов вы должны --list их точные имена, включая путь, как напечатано с помощью --list ( -t ).
Извлечение одного или нескольких каталогов из архива аналогично извлечению файлов:
Вы также можете извлекать файлы из файла tar.gz на основе шаблона с подстановочными знаками, используя параметр --wildcards и цитируя шаблон, чтобы оболочка не интерпретировала его.
Например, чтобы извлечь файлы, имена которых заканчиваются на .js (файлы Javascript), вы должны использовать:
Извлечение файла tar.gz из stdin
В следующем примере мы загружаем исходники Blender с помощью команды wget и передаем его вывод в команду tar :
Если вы не укажете вариант декомпрессии, tar укажет, какой вариант вам следует использовать:
Вывод файла tar.gz
Чтобы --list список содержимого файла tar.gz, используйте параметр --list ( -t ):
Результат будет выглядеть примерно так:
Если вы добавите параметр --verbose ( -v ), tar выведет дополнительную информацию, такую как владелец, размер файла, временная метка и т. Д.
По умолчанию в системах Unix/Linux включен встроенный архиватор tar, позволяющий запаковывать/распаковывать архив и выполнять много других операций с заархивированными файлами. В его функционал не входит компрессия, но он отлично работает с такими утилитами, как Gzip и BZip2 – с помощью них и выполняется сжатие файлов.
В сегодняшней статье мы подробно разберем основные функции команды tar, а также рассмотрим, как работать с архивами в Linux-системе.
Tar: основные функции и синтаксис
Начнем с синтаксиса – он довольно прост. Если вы когда-либо работали в консольном окне, то вопросов возникнуть не должно. Создание нового архива выполняется следующей строчкой кода:
Распаковка файлов тоже выполняется просто:
Основные опции:
- -A, --concatenate – позволяет добавить уже существующий архив к другому;
- -c, --create – создает новый архив и записывает в него файлы;
- -d – расшифровывается как -diff или -delete, где первая команда проверяет различия между архивами, вторая – удаляет данных из архива;
- -r, append – добавляет новые файлы в конец заархивированного документа;
- -t, --list – разрешает посмотреть содержимое архива, формат аналогичен ls –l; если файлы не указаны, то выводит информацию обо всех файлах;
- -u, --update – обновление файлов в созданном архиве с тем же наименованием;
- -x, --extract – распаковывает файлы из заархивированного документа.
Мы также можем использовать особые параметры, относящиеся к каждой опции:
- -c dir, --directory=DIR – перед тем как выполнить операцию, директория будет изменена на dir;
- -f file, --file – выводит результат в file;
- -p, --bzip2 – сохраняет все права доступа;
- -v – расшифровывается как -verbose или -totals: выводит всю информацию о текущем процессе и показывает сведения об уже завершенном процессе.
Как мы говорили ранее, tar также хорошо взаимодействует с утилитами сжатия. Для их использования предназначены отдельные опции:
- -a, -auto-compress – выбирает программу для сжатия данных;
- -I, -use-compress-program=PROG – позволяет фильтровать архив с помощью утилиты PROG, для которой требуется использование опции -d;
- -j, -bzip2 – сжимает архив с помощью программы bzip2;
- -J, -xz – сжимает архив с помощью программы XZ;
- -Izip – сжимает архив с помощью программы Lzip;
- -Izma – сжимает архив с помощью программы Izma;
- -z, -gzip, -gunzip, -ungzip – сжимает архив с помощью программы GZIP;
- -Z, -compress, -uncompress – использование компрессии.
У команды tar есть еще много возможностей – чтобы их посмотреть, достаточно в консольном окне ввести команду tar --help. О том, как воспользоваться наиболее важными опциями и поработать с архивацией данных, мы поговорим в следующем разделе.
Как воспользоваться архиватором tar
Для работы с архиватором будем использовать сборку Kali Linux. Данный алгоритм подойдет и для других версий Unix/Linux, поэтому можете просто следовать инструкциям, чтобы прийти к тому же результату.
Создать новый архив или распаковать уже созданный мы можем двумя путями: воспользоваться необходимыми командами через консоль либо использовать встроенный архиватор ручным способом. Давайте рассмотрим оба варианта и посмотрим, как с их помощью можно создать новый архив, посмотреть его содержимое, распаковать данные и провести их сжатие.
Архивируем файлы
Чтобы добавить один или несколько файлов в архив через консольное окно, нам потребуется сначала прописать пути, чтобы система понимала, откуда брать файлы. Сделать это довольно просто: указываем в консоли путь до директории, в которой находятся файлы. В нашем случае это /home/kali/.
Для архивации вводим команду типа:
В результате будет создан архив в исходной папке – перейдем в нее и убедимся, что все прошло корректно:
Второй способ – ручное архивирование. Для этого выбираем файл, который нужно заархивировать, и кликаем по нему правой кнопкой мыши. В отобразившемся меню нажимаем на функцию создания архива. Далее нам потребуется указать название файла, задать ему расширение .tar и воспользоваться кнопкой архивирования файлов.
Как видите, создать tar-архив в Linux совсем не сложно. Если вам нужно заархивировать несколько документов через консоль, то просто пропишите их имена с использованием пробела.
Распаковываем tar-файлы
В данном случае нам также потребуется в консольном окне перейти в нужную директорию. Как только пути будут прописаны, можно вводить команду для разархивации:
Таким образом будут получены файлы, находящиеся в архиве. Также мы можем их достать и ручным способом – для этого достаточно кликнуть правой кнопкой мыши по файлу и нажать на «Извлечь здесь».
Как работать со сжатием файлов
Напоминаю, что tar не сжимает файлы, а только добавляет их в архив. Для уменьшения размера архивируемых файлов потребуется дополнительно воспользоваться такими утилитами, как bzip2 и gzip. Они хорошо взаимодействуют с tar, поэтому в консольном окне достаточно прописать несколько новых значений. В ручном режиме сжатие файлов выполняется с помощью расширения .tar.bz2 или .tar.gz.
Итак, для сжатия в bzip2 переходим через консоль в нужную директорию и прописываем следующую команду:
Чтобы использовать gzip, другую утилиту для сжатия, вводим следующее:
Для распаковки файлов такого типа используйте:
Ручной способ аналогичен созданию обычного архива, только необходимо указать расширение .tar.bz2 либо .tar.gz.
Распаковать файлы самостоятельно тоже просто – для этого нужно кликнуть правой кнопкой по архиву и выбрать «Извлечь здесь».
Как посмотреть содержимое архива
Мы можем посмотреть, что находится в архиве без его распаковки. В консоли для этого необходимо ввести команду такого типа:
Обратите внимание, что под командой отобразилось название «document1» – это файл, находящийся в архиве. Если файлов несколько, то каждый будет прописан в новой строке.
Для просмотра архива без использования консоли достаточно кликнуть двойным щелчком мыши по архиву. После этого отобразится новое окно, в котором будет показан весь список файлов.
Заключение
Сегодня мы рассмотрели основные методы архивации, распаковки и сжатия файлов с помощью команды tar. Это простой инструмент, который отлично взаимодействует с утилитами сжатия bzip2 и gzip. Надеюсь, что теперь вам будет легко работать с архивами в системе Linux. Спасибо за внимание!
Tar — одна из наиболее широко используемых команд Linux для сжатия. Использование tar даёт много преимуществ, за что её и любят специалисты, имеющие дело с командной строкой Linux. Дальше мы поговорим об этих преимуществах, а также рассмотрим основные примеры использования утилиты.
В большинстве случаев результатом сжатия с использованием утилиты tar является файл с расширением .tar. Последующие сжатия выполняются с помощью gzip, в результате получаем файл .tar.gz.
С помощью tar вы можете сжимать и распаковывать файлы. Tar имеет много опций, но некоторые из них вам, возможно, придётся запомнить.
- Tar довольно эффективно сжимает файлы, степень сжатия — 50%;
- Значительно уменьшает размер упакованных файлов и папок;
- Tar не изменяет свойства файлов и каталогов. Разрешения и другие функции остаются неизменными;
- Tar доступна в большинстве версий Linux, в том числе и в более старых, а также в прошивке Android;
- Быстро сжимает и разжимает содержимое;
- Простая в использовании.
Теперь, когда мы разобрались с преимуществами tar, стоит ответить на ещё один вопрос: при каких сценариях используется эта утилита?
- Если вы работаете в системах на базе Linux и вам нужно сжать файлы;
- Вам нужно перенести огромную коллекцию файлов и папок с одного сервера на другой;
- Нужно сделать резервную копию сайта, данных или чего-либо ещё;
- Чтобы уменьшить использование места в вашей системе;
- Для загрузки и скачивания папок.
Как использовать Tar в Linux
Давайте узнаем, какие основные операции вы можете выполнять с помощью tar. Но прежде чем мы начнём, вам нужно будет подключиться к вашему VPS-серверу по SSH. Вот руководство, которое вам поможет!
Создание файла .tar в Linux
Вы можете сжимать как файлы, так и папки. В обоих случаях в результате вы получите архив с расширением .tar. Пример создания такого архива:
Здесь /home/primerArhiva — это каталог, который необходимо сжать, в результате чего мы получим primerArhiva.tar.
В команде используются параметры –cvf, которые реализуют следующие модификации:
- c – создает новый файл .tar;
- v – выводит подробное описание процесса сжатия;
- f – имя файла.
Создание файла .tar.gz в Linux
Если вы хотите добиться ещё большего сжатия, создайте архив .tar.gz. Вот пример:
Дополнительная опция z представляет сжатие gzip. Как вариант, вы также можете создать архив .tgz, похожий на tar.gz. Например:
Создание файла .tar.bz2 в Linux
Файлы архива .bz2 имеют ещё больший уровень сжатия, чем файлы, сжатые с gzip. Однако для сжатия и распаковки потребуется больше времени. Чтобы создать архив, вам нужно использовать опцию -j. Пример операции:
Похожие варианты сжатия — .tar.tbz и .tar.tb2. Например:
Как разархивировать файлы .tar в Linux
Команду tar также можно использовать для извлечения файлов. Следующая команда извлечет файлы в текущий каталог:
Если вы хотите распаковать файлы в другой каталог, используйте опцию -C. Например:
Аналогичную команду можно использовать для распаковки файлов .tar.gz:
.tar.bz2, .tar.tbz или .tar.tb2 файлы могут быть распакованы аналогично. Для этого введите следующую команду в командной строке:
Как вывести список содержимого архива в Linux
После создания архива вы можете просмотреть его содержимое с помощью подобной команды:
Команда выведет полный список файлов с отметками времени и разрешениями. Используйте аналогичную команду для .tar.gz:
Такой вариант подходит и для файлов .tar.bz2:
Как извлечь только один файл из архива .tar
Вы можете извлечь необходимый вам файл, не распаковывая остальные файлы архива. Один из таких примеров показан ниже:
Здесь primer.sh — это тот единственный файл, который будет извлечён из primerArhiva.tar. В качестве альтернативы вы также можете использовать следующую команду:
Чтобы извлечь только один файл из .tar.gz, вы можете использовать команду, аналогичную показанной ниже:
Или аналогичную команду:
Чтобы извлечь один файл из .tar.bz2, воспользуйтесь командой:
Или аналогичную команду:
Как видите, команда tar имеет довольно гибкий синтаксис.
Как извлечь несколько файлов из архивов .tar
Если вы хотите извлечь несколько файлов, используйте следующий формат команды:
Соответственно для .tar.gz команда будет выглядеть так:
Для .tar.bz2:
Извлечь несколько файлов за критерием
Если вы хотите извлечь из архива только определённые файлы, например только .jpg, используйте метасимволы. Пример такой команды показан ниже:
Для .tar.gz введите:
Для .tar.bz2:
Как добавить файлы в архив .tar
Вы можете не только извлекать, но и добавлять выбранные файлы в существующий архив. Для этого мы будем использовать параметр -r, который означает добавление. Tar может добавлять как файлы, так и каталоги.
Ниже приведён пример, в котором мы добавляем primer.jpg в существующий файл primerArhiva.tar.
Мы также можем добавить каталог. В примере ниже каталог image_dir был добавлен в primerArhiva.tar.
Вы не можете добавлять файлы или папки в архивы .tar.gz или .tar.bz2.
Как проверить архив .tar в Linux
Используя tar, вы также можете проверить целостность созданного архива. Вот один из способов, как это можно сделать:
Данная команда не применима к файлам .tar.gz или .tar.bz2.
Как проверить размер архива в Linux
Вы также можете проверить размер созданного архива. Размер будет указан в КБ (килобайтах).
Ниже приведены примеры команды с разными архивными файлами:
Итоги
Как видите, tar — действительно мощный инструмент, который должен знать каждый специалист, имеющий дело с терминалом Linux.
Мы надеемся, что эта статья помогла вам разобраться с особенностями использования tar в Linux! Вы также можете изучить подробную инструкцию по этой утилите, вызвав справку с помощью команды man tar. Увидимся в следующем руководстве!
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Читайте также: