Главная >> Команды >> Команда tar в Linux

Команда tar в Linux

В качестве инструмента для архивации данных в Linux используются разные программы. Например архиватор Zip Linux, приобретший большую популярность из-за совместимости с ОС Windows. Но это не стандартная для системы программа. Поэтому хотелось бы осветить команду tar Linux — встроенный архиватор.

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


Содержание статьи

Синтаксис команды tar

Синтаксис команд для создания и распаковки архива практически не отличается (в том числе с утилитами сжатия bzip2 или gzip). Так, чтобы создать новый архив, в терминале используется следующая конструкция:

tar опции архив.tar файлы_для_архивации

Для его распаковки:

tar опции архив.tar

Функции, которые может выполнять команда:

Функция Длинный
формат
Описание
-A --concatenate Присоединить существующий архив к другому
-c --create Создать новый архив
-d --diff
--delete
Проверить различие между архивами
Удалить из существующего архива файл
-r --append Присоединить файлы к концу архива
-t --list Сформировать список содержимого архива
-u --update Обновить архив более новыми файлами с тем же именем
-x --extract Извлечь файлы из архива

При определении каждой функции используются параметры, которые регламентируют выполнение конкретных операций с tar-архивом:

Параметр Длиннный
формат
Описание
-C dir --directory=DIR Сменить директорию перед выполнением операции на dir
-f file --file Вывести результат в файл (или на устройство) file
-j --bzip2 Перенаправить вывод в команду bzip2
-p --same-permissions Сохранить все права доступа к файлу
-v --verbose Выводить подробную информацию процесса
--totals Выводить итоговую информацию завершенного процесса
-z --gzip Перенаправить вывод в команду gzip

А дальше рассмотрим примеры того, как может применяться команда tar Linux.

Как пользоваться tar

1. Создание архива tar

С помощью следующей команды создается архив archive.tar с подробным выводом информации, включающий файлы file1, file2 и file3:

tar --totals --create --verbose --file archive.tar file1 file2 file3

Но длинные опции и параметры можно заменить (при возможности) однобуквенными значениями:

tar --totals -cvf archive.tar file1 file2 file3

Создание архива tar

2. Просмотр содержимого архива

Следующая команда выводит содержимое архива, не распаковывая его:

tar -tf archive.tar

Отображение архива

3. Распаковка архива tar Linux

Распаковывает архив test.tar с выводом файлов на экран:

tar -xvf archive.tar

Распаковка архива

Чтобы сделать это в другой каталог, можно воспользоваться параметром -C:

tar -C "Test" -xvf archive.tar

Распаковка в другой каталог

3. Работа со сжатыми архивами

Следует помнить, что tar только создаёт архив, но не сжимает. Для этого используются упомянутые компрессорные утилиты bzip2 и gzip. Файлы, сжатые с их помощью, имеют соответствующие расширения .tar.bz2 и .tar.gz. Чтобы создать сжатый архив с помощью bzip2, введите:

tar -cjvf archive.tar.bz2 file1 file2 file3

Сжатие в bz2

Синтаксис для gzip отличается одной буквой в параметрах, и меняется окончание расширения архива:

tar -czvf archive.tar.gz file1 file2 file3

Сжатие в gz

При распаковке tar-архивов с таким расширением следует указывать соответствующую опцию:

tar -C "Test" -xjvf arhive.tar.bz2

Распаковка bz2

или:

tar -xzvf archive.tar.gz

Распаковка gz

На заметку: архиватор tar — одна из немногих утилит в GNU/Linux, в которой перед использованием однобуквенных параметров, стоящих вместе, можно не ставить знак дефиса.

Выводы

В этой статье была рассмотрена команда tar Linux, которая используется для архивации файлов и поставляется по умолчанию во всех дистрибутивах. В её возможности входит создание и распаковка архива файлов без их сжатия. Для сжатия утилита применяется в связке с популярными компрессорами bzip2 и gzip.

13 комментариев к “Команда tar в Linux”

  1. Спасибо за статью! Пока я ее читал, любовался на оформление консоли в Manjaro. Как-то можно подобное на Ubuntu установить?

    Ответить
    • Спасибо за отзыв!
      Да, можно. Цветовое оформление можете взять из любого .bashrc в Manjaro (Xfce, по крайней мере). Чтобы не было рамок, просто уберите границы вокруг новых окон в настройках во вкладке "Вид".

      Ответить
  2. Добрый день!
    Антон, а не подскажите, в чем может быть проблема? Linux только осваиваю и потому никак не могу найти решение проблемы. Может архиватор не так работает? Или CentOS нужно переустанавливать...

    [root@mail ~]# dir
    anaconda-ks.cfg iRedMail-0.9.5-1.tar.bz2.1
    iRedMail-0.9.5-1.tar.bz2 iRedMail-0.9.9.tar.bz2
    [root@mail ~]# tar xjf iRedMail-0.9.9.tar.bz2
    tar (child): bzip2: Функция exec завершилась с ошибкой: Нет такого файла или каталога
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now
    [root@mail ~]#

    Ответить
  3. Добрый день!
    Возможно ли командой tar создать архив всего ж.д. на ленточном накопителе и потом распаковать его на другой ж.д.?
    Как будет выглядеть синтаксис команды при этом?
    Необходимо создать копию ж.д, но сами диски несколько отличаются конфигурацией (цилиндры/головы/сектора) при одинаковом объеме, поэтому копирование командой dd не осуществляется.
    Заранее спасибо!

    Ответить
  4. -f Вывести результат в файл (или на устройство) file

    ошибка у вас. не вывести, а использовать
    -f, --file [HOSTNAME:]F
    use archive file or device F (default "-", meaning stdin/stdout)

    Ответить

Оставьте комментарий