- Использование tar в Linux и FreeBSD для работы с архивами
- Создание и распаковка архивов
- Создать
- Распаковать
- Примеры
- Распаковать в определенную папку
- Распаковка без вложенной папки
- Исключение файлов по маске
- Работа с архивами, разбитыми на части
- Описание ключей tar
- Команды для действия
- Дополнительные опции
- Windows
- Архиватор tar
- Содержание
- Использование
- Создание архива
- Распаковка архива
- Просмотр содержимого архива
- Прочие возможности
- Примеры Использования Команды Tar в Linux
- Как использовать Tar в Linux
- Создание файла .tar в Linux
- Создание файла .tar.gz в Linux
- Создание файла .tar.bz2 в Linux
- Как разархивировать файлы .tar в Linux
- Как вывести список содержимого архива в Linux
- Как извлечь только один файл из архива .tar
- Как извлечь несколько файлов из архивов .tar
- Извлечь несколько файлов за критерием
- Как добавить файлы в архив .tar
- Как проверить архив .tar в Linux
- Как проверить размер архива в Linux
- Итоги
Использование tar в Linux и FreeBSD для работы с архивами
Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.
Создание и распаковка архивов
Создать
Создание выполняется с ключом c. Синтаксис следующий:
tar -czvf archive.tar.gz /home/dmosk
* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).
Распаковать
Распаковка выполняется с ключом 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:
tar —exclude=’sess_*’ -czvf archive.tar.gz /wwwsite
* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.
Также можно исключить несколько файлов или папок, добавляя несколько опций exclude:
tar —exclude=’/data/recycle’ —exclude=’*.tmp’ zcf /backup/samba/2021-08-29.tar.gz /data/
* в данном примере мы исключим папку 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
Содержание
tar — наиболее распространенный архиватор, используемый в Linux-системах. Сам по себе tar не является архиватором в привычном понимании этого слова, т.к. он самостоятельно не использует сжатие. В то же время, многие архиваторы (например, Gzip или bzip2) не умеют сжимать несколько файлов, а работают только с одним файлом или входным потоком. Поэтому чаще всего эти программы используются вместе. tar создает несжатый архив, в который помещаются выбранные файлы и каталоги, при этом сохраняя некоторые их атрибуты (такие как права доступа). После этого полученный файл *.tar сжимается архиватором, например, gzip . Вот почему архивы обычно имеют расширение .tar.gz или .tar.bz2 (для архиваторов gzip и bzip2 соответственно)
Использование
tar запускается с обязательным указанием одного из основных действий, самые распространенные из которых — создание и распаковка архивов, далее задаются прочие параметры, зависящие от конкретной операции.
Создание архива
Для создания архива нужно указать tar соответствующее действие, что делается с помощью ключа -c . Кроме того, для упаковки содержимого в файл необходим ключ -f 1) . Далее укажем сначала имя будущего архива, а затем те файлы, которые хотим упаковать.
Эта команда упакует все файлы с расширением txt в архив txt.tar. Так и создается простейший архив без сжатия. Для использования сжатия не нужно запускать что-либо еще, достаточно указать tar, каким архиватором следует сжать архив. Для двух самых популярных архиваторов gzip и bzip2 ключи будут -z и -j соответственно.
/files со всем содержимым в сжатый с помощью gzip архив.
создаст аналогичный архив, используя для сжатия bzip2.
Ключ -v включает вывод списка упакованных файлов в процессе работы. К сожалению, более продвинутой индикации хода процесса (например, указания степени готовности в процентах) в tar не предусмотрено. Для этого используйте графические архиваторы (например, Xarchiver) или пользуйтесь средствами файл-менеджера.
Помимо gzip и bzip2 можно использовать, например, lzma (ключ –lzma ) или xz (ключ -J ), при этом соответствующий архиватор должен быть установлен в системе.
Распаковка архива
Действие «распаковка» задается с помощью ключа -x . И тут снова потребуется ключ -f для указания имени файла архива. Также добавим ключ -v для визуального отображения хода процесса.
распакует содержимое архива в текущую папку. Альтернативное место для распаковки можно указать с помощью ключа -C :
Просмотр содержимого архива
Для просмотра содержимого архива используйте следующую команду:
Она выведет простой список файлов и каталогов в архиве. Если же добавить ключ -v , будет выведен подробный список с указанием размера, прав доступа и прочих параметров (так же, как по ls -l )
Прочие возможности
tar предоставляет множество полезных возможностей. Например, можно указать файлы и каталоги, которые не будут включены в архив, добавить файлы в существующий архив, взять список объектов для запаковки из текстового файла и много что ещё. Во всем многообразии опций как всегда поможет разобраться
Источник
Примеры Использования Команды Tar в Linux
Tar — одна из наиболее широко используемых команд Linux для сжатия. Использование tar даёт много преимуществ, за что её и любят специалисты, имеющие дело с командной строкой Linux. Дальше мы поговорим об этих преимуществах, а также рассмотрим основные примеры использования утилиты.
Tar расшифровывается как «Tape archive» и используется для сжатия файлов и папок.
В большинстве случаев результатом сжатия с использованием утилиты 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. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Источник