Содержание
- 1 Работа с архивами при помощи утилиты TAR. Стандартный архиватор Linux
- 2 Что такое tar.gz?
- 3 Где используют эти архивы tar.gz?
- 4 Как правильно создать tar.gz архив?
- 5 Как распаковать tar.gz в Linux
- 6 Просто распаковать
- 7 Извлечь в произвольную папку
- 8 Как сохранить все файлы в одну папку?
- 9 Как распаковать tar.gz файлы в Dropbox?
- 10 Какую операционную систему и браузер поддерживает ezyZip?
- 11 Что такое ezyZip?
- 12 Добавление файлов в существующий архив Tar
- 13 Удаление файлов из архива Tar
- 14 Что такое tar.xz файл?
- 15 Распаковка tar.xz файл в Linux
- 16 Извлечение определенных файлов из файла tar.xz
- 17 Извлечение файла tar.xz из stdin
- 18 Листинг содержимого файла tar.xz
Работа с архивами при помощи утилиты 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 |
В данном случае архив создается с полной структурой папок.
Как в 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 |
Теперь пример с опцией «-С»:
<текстареа 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 |
Как видим результат одинаковый. Так, что используйте тот вариант который покажется более удобным.
Теперь давайте рассмотрим как добавить файл или папку в уже созданный архив. Для этого нужно использовать опцию «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’
Как сохранить все файлы в одну папку?
- Следуйте инструкциям выше, чтобы открыть TAR.GZ-файл
- Прокрутите в конец списка файлов и кликните «Сохранить все». Если кнопка неактивна, значит ваш браузер не поддерживает эту функцию или она не включена.
В Chrome вы можете включить функцию, переключив этот параметр:chrome://flags/#native-file-system-api
(скопируйте и вставьте в адресную строку браузера) - Выберите пустую папку, куда вы хотите извлечь файлы. Внимание: если там уже есть файлы с такими именами, ezyZip ПЕРЕЗАПИШЕТ ИХ.
- После того, как вы выбрали папку, браузер запросит разрешение на доступ к ней. Кликните «Просмотреть файлы», а затем «Сохранить изменения».
- Затем начнется сохранение файлов и подпапок в указанную вами.
Как распаковать tar.gz файлы в Dropbox?
- Кликните на лого Dropbox () на кнопке выбора tar.gz файла.
- Появится окно выбора файла в Dropbox. При первом запуске будет необходимо подтвердить доступ к ezyZip.
- Как только вы выберете tar.gz файл, он сразу скачается в вашем браузере и откроется после скачивания.
- Для сохранения файлов на 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/