Примеры Использования Команды Tar в Linux. Как извлечь или распаковать файл tar.xz в Linux

Содержание

Работа с архивами при помощи утилиты TAR. Стандартный архиватор Linux

Стандартная утилита для создания архивов в linux  — «tar». Синтаксис команды такой:

<текстареа wrap=»soft» class=»urvanov-syntax-highlighter-plain print-no» data-settings=»dblclick» readonly=»» style=»-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 25px !important;»> tar опции имя_файла_архива файл_для_архивации

1 tar опции имя_файла_архива файл_для_архивации

Основные опции:

  • c — создание нового архива
  • f — имя файла для архива
  • r — добавление файлов в конец архива
  • x — извлечение файлов из архива
  • t — вывод списка содержимого архива
  • v — вывод сведений о работе программы
  • -C — распаковать в указанную папку

Например. У меня есть папка «Test» и я хочу создать архив tar. Команда tar будет такой:

<текстареа wrap=»soft» class=»urvanov-syntax-highlighter-plain print-no» data-settings=»dblclick» readonly=»» style=»-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 25px !important;»> tar cf Test.tar Test

1 tar cf Test.tar Test

В результате получится файл архива «Test.tar»

Для того, что бы увидеть работу программы можно использовать опцию «v». Будет выведено какие файлы и папки добавлены в архив. Например:

<текстареа wrap=»soft» class=»urvanov-syntax-highlighter-plain print-no» data-settings=»dblclick» readonly=»» style=»-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 25px !important;»> tar cvf Test.tar Test

1 tar cvf Test.tar Test

Создание архива tar с опцией -v

В данном случае архив создается с полной структурой папок.

Как в linux архивировать папку по заданному пути

Часто нужно создать архив не заходя в директорию. Давайте рассмотрим пример как создать архив не сохраняя структуру а создать архив только нужной папки из дерева.

Например, у меня есть папка «test» и вложенные «test1/test2». Внутри каждой папки находится по одному файлу. Если использовать команду вида  tar cf test.tar test/test1/test2 то будет архив tar со всеми папками и файлами включая и test и test1.

Чтобы сделать архив папки по определенному пути нужно использовать опцию —directory=КАТАЛОГ либо -C и в конце через пробел указываем нужную папку для архивации.

Пример использования linux tar  с опцией «directory»:

<текстареа wrap=»soft» class=»urvanov-syntax-highlighter-plain print-no» data-settings=»dblclick» readonly=»» style=»-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 25px !important;»> tar cf test2.tar —directory=test/test1/ test2

1 tar cf test2.tar —directory=test/test1/ test2

Создание linux tar архива папки с помощью опции --directory

Теперь пример с опцией «-С»:

<текстареа wrap=»soft» class=»urvanov-syntax-highlighter-plain print-no» data-settings=»dblclick» readonly=»» style=»-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 25px !important;»> tar cf test2.tar -C test/test1/ test2

1 tar cf test2.tar -C test/test1/ test2

linux tar папки созданный при помощи опции -С

Как видим результат одинаковый. Так, что используйте тот вариант который покажется более удобным.

Теперь давайте рассмотрим как добавить файл или папку в уже созданный архив.  Для этого нужно использовать опцию «r». Пример. Добавить файл «file.txt» в архив «Test.tar». Используем команду:

<текстареа wrap=»soft» class=»urvanov-syntax-highlighter-plain print-no» data-settings=»dblclick» readonly=»» style=»-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 25px !important;»> tar rf Test.tar file.txt

1 tar rf Test.tar file.txt

Что бы просмотреть содержимое архива tar используйте команду:

<текстареа wrap=»soft» class=»urvanov-syntax-highlighter-plain print-no» data-settings=»dblclick» readonly=»» style=»-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 25px !important;»> tar -tf Test.tar

1 tar -tf Test.tar

Будет отображено содержимое архива «Test».

Как распаковать tar архив в linux

Теперь давайте рассмотрим как распаковать или как еще говорится разархивировать архив tar. Для этого дайте команду:

<текстареа wrap=»soft» class=»urvanov-syntax-highlighter-plain print-no» data-settings=»dblclick» readonly=»» style=»-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 25px !important;»> tar xf Test.tar

1 tar xf Test.tar

Архив будет распакован в текущую папку. Как быть если нужно распаковать не весь архив а извлечь только нужный файл. Допустим я хочу извлечь файл «file.txt». Для этого нужно дать команду:

<текстареа wrap=»soft» class=»urvanov-syntax-highlighter-plain print-no» data-settings=»dblclick» readonly=»» style=»-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 25px !important;»> tar xf Test.tar Test/file.txt

1 tar xf Test.tar Test/file.txt

Для того, чтобы извлечь архив в другой каталог используйте атрибут «-C». Например требуется распаковать архив в папку «Driver» находящуюся в директории «Zhelezo». Выполню команду:

<текстареа wrap=»soft» class=»urvanov-syntax-highlighter-plain print-no» data-settings=»dblclick» readonly=»» style=»-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 14px !important; line-height: 25px !important;»> tar xf Test.tar -C Zhelezo/Driver/

1 tar xf Test.tar -C Zhelezo/Driver/

Думаю с архивированием и разархивированием файлов и папок в линукс без сжатия все понятно.

Что такое tar.gz?

Tar.gz — это архив созданный программой Tar, и после этого заархивированный программой Gzip. Такая двойная архивация обусловлена тем, что программа Gzip сжимает хорошо и быстро, но делает это только с одним файлом. Поэтому чтобы запаковать несколько файлов, для начала из них создается один tar-архив, а после этого он уже пакуется программой Gzip. Причем стоит отметить, что первичный архив tar практически не сжимает информацию, а лишь объединяет ее в один файл. В конечном варианте мы получаем архив с двойным расширением filename.tar.gz или filename.tgz

Где используют эти архивы tar.gz?

Как правило их используют для создания резервной копии сайта на хостинге под управлением UnixLinux.

Как правильно создать tar.gz архив?

  

В ОС Windows

Нужно использовать архиватор7-zip.

В ОС Linux

Подключаемся к серверу на хостинге по SSH-протоколу с помощью программы PuTTY. В командную строку вводим:

tar -cvf file.tar /full/path

Эта команда создаст архив file.tar из всех файлов в директории /full/path. Но т.к. tar не архивирует, а лишь объединяет файлы, то нам нужно еще раз запаковать его с помощью Gzip:

tar -czvf file.tar.gz /full/path

В итоге получим file.tar.gz который будет находится в директории /full/path.

Правила синтаксиса команды tar

tar [-ключи] [название архива, который будет создан] [что паковатькуда паковать]

Что касается ключей:
с (create) — создать файл архива
v (verbose) — показать информацию о выполнении
f (file) — указывает что нужно создавать файл с именем, которое задается после ключей (в нашем примере file.tar или file.tar.gz), если не указать этот ключ, то будет использовано имя по умолчанию или возникнут проблемы.
z (gzip) — архивировать файл с помощью gzip

Как распаковать tar.gz в Linux

Данная инструкция расскажет, как извлечь содержимое tar архива с помощью командной строки. Она отвечает лишь на один единственный вопрос, поставленный в ее названии.  Для более детальной информации по тому, как создавать и распаковывать архивы с помощью команды tar у нас есть материал: Учимся работать с Tar архивами в Ubuntu

Просто распаковать

Для того, чтобы извлечь файлы в текущую папку используется команда:

tar -zxvf output.tar.gz

output.tar.gz — файл архива, который необходимо распаковать.

Извлечь в произвольную папку

Чтобы архив tar.gz распаковать в папку отличную от текущей используется флаг -C

tar -zxvf output.tar.gz -C /output/catalog

/output/catalog — путь к каталогу (папке), куда будут извлечены файлы из архива.

распаковка тар архива линукс
Пример работы с tar

Извлечение определенных файлов из архива Tar 

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

Чтобы извлечь конкретные файлы из архива tar, добавьте разделенный пробелами список имен файлов, которые нужно извлечь после имени архива:

tar -xf archive.tar file1 file2
При извлечении файлов вы должны указать их точные имена, включая путь, как указано в —list( -t).

Извлечение одного или нескольких каталогов из архива аналогично извлечению файлов:

tar -xf archive.tar dir1 dir2
Если вы попытаетесь извлечь файл, который не существует, появится сообщение об ошибке, подобное следующему:

tar -xf archive.tar READMEtar: README: Not found in archive tar: Exiting with failure status due to previous errors

Извлечение файлов из архива Tar с использованием подстановочного знака

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

Например, чтобы извлечь файлы, имена которых оканчиваются на .js (файлы Javascript), вы можете использовать:

tar -xf archive.tar —wildcards ‘*.js’

Как сохранить все файлы в одну папку?

  1. Следуйте инструкциям выше, чтобы открыть TAR.GZ-файл
  2. Прокрутите в конец списка файлов и кликните «Сохранить все». Если кнопка неактивна, значит ваш браузер не поддерживает эту функцию или она не включена.
    В Chrome вы можете включить функцию, переключив этот параметр:chrome://flags/#native-file-system-api
    (скопируйте и вставьте в адресную строку браузера)
  3. Выберите пустую папку, куда вы хотите извлечь файлы. Внимание: если там уже есть файлы с такими именами, ezyZip ПЕРЕЗАПИШЕТ ИХ. Кликните, чтобы выбрать папку для сохранения архива
  4. После того, как вы выбрали папку, браузер запросит разрешение на доступ к ней. Кликните «Просмотреть файлы», а затем «Сохранить изменения».
  5. Затем начнется сохранение файлов и подпапок в указанную вами.

Как распаковать tar.gz файлы в Dropbox?

  1. Кликните на лого Dropbox () на кнопке выбора tar.gz файла.
  2. Появится окно выбора файла в Dropbox. При первом запуске будет необходимо подтвердить доступ к ezyZip.
  3. Как только вы выберете tar.gz файл, он сразу скачается в вашем браузере и откроется после скачивания.
  4. Для сохранения файлов на Dropbox кликните «Dropbox» выбрав данный пункт из появляющегося под кнопкой «Сохранить» или «Сохранить все». Необходимо будет авторизовать Dropbox для ezyZip при первом использовании.

Какую операционную систему и браузер поддерживает ezyZip?

ezyZip поддерживает любую ОС, которая может работать с современным браузером. Мы протестировали его для работы с Windows, MacOS, Linux (например, Ubuntu, Mint, Debian), Android, ChromeOS (Chromebook), Android, iOS (iPhone, iPad и iPod Touch).
Убедитесь, что вы используете последнюю версию одного из популярных браузеров или их вариации (например, Chrome, Firefox, Safari, Opera).

Что такое ezyZip?

ezyZip представляет собой онлайн-инструмент для сжатия и распаковки архивов, которое позволяет упаковывать файлы в архив. Он также поддерживает распаковку, что позволяет распаковывать zip-файлы.

В отличие от традиционных онлайн-утилит создания и распаковки архивов, при использовании ezyZip не требуется загружать файлы на сервер или скачивать файлы с сервера. Он работает локально как приложение HTML5/javascript в браузере, благодаря чему он работает гораздо быстрее, чем другие аналогичные онлайн-инструменты создания и распаковки архивов.

Добавление файлов в существующий архив Tar

Чтобы добавить файлы или каталоги в существующий tar-архив, используйте —append ( -r ).

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

tar -rvf archive.tar newfile

Удаление файлов из архива Tar

Используйте операцию —delete для удаления файлов из архива.

В следующем примере показано, как удалить файл file1 из archive.tar:

tar —delete -f archive.tar file1

Что такое tar.xz файл?

tar – это утилита, которая объединяет несколько файлов в один файл. Основное преимущество такой утилиты, как tar, заключается в передаче файлов.

Из-за накладных расходов передача 100 файлов по 1 КБ займет больше времени, чем передача одного файла по 100 КБ.

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

Но сам tar не сжимает файлы. Если вы используете tar для объединения 100 файлов по 1 КБ каждый, результирующий файл tar, вероятно, будет иметь размер около 100 КБ.

Для дальнейшей экономии времени и пропускной способности используются утилиты сжатия. Эти инструменты сжатия уменьшат размер результирующего файла. Tar.xz является одним из таких инструментов сжатия и использует алгоритм сжатия LZMA.

Вот почему результирующий файл tar.xz в нашем сценарии может быть значительно меньше, чем 100 КБ, скажем, 50 КБ.

Распаковка tar.xz файл в Linux

Извлечь файл tar xz довольно просто. Вам просто нужно убедиться, что в вашем дистрибутиве Linux есть поддержка утилиты сжатия xz.

Инструмент сжатия XZ доступен через пакет XZ-utils в большинстве дистрибутивов Linux. В большинстве случаев вы уже будете иметь утилиту XZ установленную по умолчанию.

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

В Debian или Ubuntu вы можете установить xz-utils с помощью следующей команды:

sudo apt install xz-utils

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

tar -xf file.tar.xz

 Здесь:

  • -x означает извлечь архивный файл
  • -f означает следующее имя архивного файла

Зачем вам нужно было указать х (извлечение) здесь? Потому что tar также может быть использован для создания (сжатия) файлов.

Поэтому вам нужно указать, какую операцию вы выполняете с помощью команды tar, сжатия (c) или извлечения (x).

Извлечение определенных файлов из файла tar.xz

Чтобы извлечь определенный файл (ы) из файла tar.xz, добавьте разделенный пробелами список имен файлов, которые нужно извлечь, после имени архива:

tar -xf archive.tar.xz file1 file2

При извлечении файлов вы должны указать их точные имена, включая путь, как они печатаются при вызове tar с параметром —list ( -t ).

Извлечение одного или нескольких каталогов из архива аналогично извлечению нескольких файлов:

tar -xf archive.tar.xz dir1 dir2

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

tar -xf archive.tar.xz READMEtar: README: Not found in archive tar: Exiting with failure status due to previous errors

Параметр —wildcards позволяет извлекать файлы из файла tar.xz на основе шаблона подстановки. Шаблон должен быть заключен в кавычки, чтобы оболочка не могла его интерпретировать.

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

tar -xf archive.tar.xz —wildcards ‘*.png’

Извлечение файла tar.xz из stdin

При извлечении сжатого файла tar.xz путем чтения архива со стандартного ввода (обычно через конвейер) вы должны указать параметр распаковки. Параметр -J сообщает tar что файл сжат с помощью xz.

В приведенном ниже примере мы загружаем ядро Linux с помощью команды wget и перенаправляем его вывод в команду tar :

wget -c https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.3.tar.xz -O — | sudo tar -xj

Если вы не укажете вариант декомпрессии, tar покажет вам, какой вариант вам следует использовать:

tar: Archive is compressed. Use -J option tar: Error is not recoverable: exiting now

Листинг содержимого файла tar.xz

Чтобы вывести список содержимого файла tar.xz, используйте параметр —list ( -t ):

tar -tf archive.tar.xz

Результат будет выглядеть примерно так:

file1 file2 file3

Если вы добавите параметр —verbose ( -v ), tar выведет дополнительную информацию, такую как владелец, размер файла, временная метка и т. Д.

tar -tvf archive.tar.xz-rw-r—r— linuxize/users 0 2020-02-15 01:19 file1 -rw-r—r— linuxize/users 0 2020-02-15 01:19 file2 -rw-r—r— linuxize/users 0 2020-02-15 01:19 file3

Источники

  • https://chuzhoy007.ru/kak-sozdat-arxiv-v-linux
  • https://ru.hostings.info/termins/targz.html
  • https://maddot.ru/kak-raspakovat-tar-gz-v-linux.html
  • https://baks.dev/article/terminal/tar-command-in-linux-create-and-extract-archives
  • https://www.ezyzip.com/ru-tar-gz.html
  • https://routerus.com/how-to-create-and-extract-archives-using-the-tar-command-in-linux/
  • https://andreyex.ru/linux/komandy-linux-i-komandy-shell/kak-izvlech-ili-raspakovat-fajl-tar-xz-v-linux/
  • https://routerus.com/how-to-extract-unzip-tar-xz-file/

Самые легкие дистрибутивы Linux. Топ для старых компьютеров. Дистрибутивы Linux для слабых пк
Захват пакетов с tcpdump: руководство с примерами. Руководство по tcpdump

ITandLife.ru