Команда tar: как создать, сжать, защитить паролем и распаковать архив в Linux 

Tar — базовый инструмент Linux для создания, управления и извлечения архивов. Утилита, в отличие от аналогов на Windows, только объединяет файлы в архив, но не сжимает их. По умолчанию только собирает в контейнер, а для сжатия архивов применяет алгоритмы xz, gzip или bzip2. Разберём базовую работу с файлами tar в Linux: как создать из файлов и директорий, сжимать, открывать для просмотра и распаковать через терминал.

Tar в Linux: что это такое

Tar — консольный архиватор, который объединит несколько документов и папок в архив с расширением .tar. При архивировании он сохраняет структуру каталогов, права доступа и метаданные, но информацию не сжимает. Для уменьшения объёма архива подключают другие утилиты, например, gzip или bz2. Сжатые файлы обычно имеют расширение gz или bz2 соответственно.

Возможности и синтаксис tar

Утилита предоставляет обширные возможности для архивирования: создание (-c), распаковка (-x), просмотр (-t), обновление (-u), удаление (-d) и сравнение (-D) архивов. Она поддерживает многотомность – их разделение на части и инкрементальный бэкап – добавления только изменённых файлов для создания резервных копий.

Базовый синтаксис выглядит следующим образом:

tar -ключи -f название.tar файл1 файл2 папка1 папка2

Здесь

  • сразу после названия архиватора через пробел с дефисом перечисляют все параметры, однобуквенные ключи можно указывать вместе, без разделителей,
  • многобуквенные вроде —incremental вводят с двумя дефисами,
  • обязательно указывают флаг -f – задаёт название создаваемого архива, путь к нему,
  • дальше через пробел вводят названия файлов и каталогов для архивирования.
Синтаксис архиватора
При помощи программы только объединяют файлы в один, компрессию она не поддерживает

Живой пример:

tar -c -f archive_name.tar file1.txt file2.txt file3.rtf folder1
Объединим три текстовых документа и каталог в archive_name.

Если объекты находятся не в текущем каталоге, указывайте полные пути к ним:

tar -cf backup.tar.gz /home/user/documents /home/user/text.txt

Основные параметры tar.

ОперацииОпцииПояснение
Операции с архивом-cСоздать новый tar-архив
-xКоманда извлечения архива
-tПоказать, что в архив
-uОбновить архив, добавив изменённые файлы
-rДобавить файлы в существующий архив
-AОбъединить несколько архивов tar (вам нужно указать путь к ним)
Файлы/папки-TИспользовать список файлов из указанного файла
-XИсключить объекты в списке
—excludeИсключить файлы или каталоги по шаблону
Метаданные-pСохранить привилегии
—numeric-ownerСохранить владельца по UID/GID
—aclsСохранить ACL
—xattrsСохранить расширенные атрибуты
Вывод/логи-vПодробный вывод процесса (verbose)
—info-scriptВывод сообщений скрипта или уведомлений
Продвинутые—incrementalСоздать инкрементальный бэкап
—directory=DIRПеред операцией перейти в указанную директорию (исключит ввод полных имён)
Общее—helpПоказать ключи и справку по команде

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

СжатиеОпцииПояснение / особенности формата
gzip-zБыстрое сжатие, умеренное уменьшение размера
bzip2-j, —bzip2Медленнее gzip, но лучше степень сжатия
xz-J, —xzИспользует LZMA2, высокий уровень компрессии, медленно
lzma—lzmaУстаревший, используйте xz
lzip—lzipХорошая компрессия, но предустановлен не всегда
lzop—lzopБыстрый, но размер уменьшает слабо
авто-сжатие-a, —auto-compressУтилита сама выберет архиватор по расширению архива

Для просмотра всех ключей команды выполните tar —help.

Справка по архиватору
Многие ключи используются редко и даже нечасто встречаются в интернете

Как установить архиватор tar

В большинстве дистрибутивов Линукс программа предустановлена. Если её нет, выполните следующие команды.

Ubuntu, Mint, Kali, Astra:

sudo apt update – обновление списка пакетов

sudo apt install tar – инсталляция

Fedora, CentOS:

sudo yum install tar

Arch, Manjaro

sudo pacman -S tar

Готово, можно работать.

Как запаковать папку и сжать файлы в Линукс

Для упаковки кликните правой клавишей по целевому каталогу и выберите «Открыть в терминале» или запустите иным способом и посетите нужную директорию:

cd «/home/username/Рабочий стол/python»

Дальше выполните следующую команду:

tar -cf «/home/user/Рабочий стол/python/документы.tar» 210818.jpg stepik.py AppInfo

Здесь:

  • -c — архивирование;
  • -f – обязательно указываем путь (path to folder) и имя файла в кавычках;
  • дальше через пробел имена папок и файлов:
  • userк ё – имя вашей учётной записи, не забудьте заменить на своё.
Пример архивирования нескольких файлов с помощью утилиты tar
Обратите внимание, никакие оповещения не появляются

Чтобы сделать архив одного каталога выполните:

tar -cf «/home/lethal/Рабочий стол/python.tar» -C «/home/lethal/Рабочий стол» python

Пояснения:

  • -c — архивирование,
  • -f — путь,
  • -C «/home/lethal/Рабочий стол» — перейти в каталог /home/lethal/Рабочий стол перед упаковкой;
  • python — имя папки внутри директории, которую архивируем;

 Без -C архив будет содержать весь путь к директории.

Файл python.tar появится на Рабочем столе, рядок с целевым каталогом.

Если нужен архив папки в Linux с пропуском определённых файлов, используйте конструкцию:

tar -cf «/home/user/documents/archive1.tar» -C «/home/user/documents» \

    —exclude=»files/arc.zip» \

    —exclude=»files/old.zip» \

    acr_name

В этом случае —exclude пропустит объекты arc.zip и old.zip.

Команду можно выполнить в одну строчку, но для этого удалите все символы переноса – «\».

Как сжать файлы в архиве tar?

В Линуксе для экономии места архивы сжимают при помощи предустановленной утилиты bzip2.

bzip2 -9 -v -k «/home/user1/desktop/python.tar»

  • -k — сохранит несжатый архив, без этого ключа его заменит новый;
  • -v – вывод прогресса упаковки;
  • -j – указывает на применение алгоритмы сжатия bzip2;
  • -9 – уровень компрессии: 0 – нет, 1 – минимальный, 9 – ультра.
Процесс работы со статистикой
Программа отображает скорость, время, процент компрессии

Аналогично используют утилиту gzip. Она работает быстрее, но сжимает чуть хуже. Синтаксис имеет почти такой же, но ключ -j меняют на -z:

  • gzip – tar -czf archive.tar.gz folder1
  • bzip2 – tar -cjf archive.tar.bz2 folder

При работе с большими файлами рекомендуем экспериментальным путём выбирать оптимальное решение: кто быстрее и сильнее сжимает. 

Как создать многотомный архив?

Архиватор поддерживает создание многотомных или разделённых на части архивов заданного размера. Разбиение на части упрощает запись данных на носители с ограниченным объёмом (например, флешки), их загрузку и скачивание через интернет. После передачи все части объединяются и корректно распаковываются стандартными средствами tar. Для создания используйте конструкцию:

tar -cf «/home/user/desktop/documents.tar» -L 102400 -C «/home/lethal/ desktop/documents» docs

-L 102400 указывает размер одного тома – 100 МБ в килобайтах.

Создаём архив с паролем

Для защиты сжатой информации в Linux можно делать зашифрованные архивы.

tar -czf — «/home/user1/docs/documents» | gpg -c -o «/home/user1/docs/documents.tar.gz.gpg»

  • c – создание архива,
  • z – применение gzip для компрессии,
  • f – ввод пути к исходнику,
  • c – (второй ключ) – добавление ключа, пароля,
  • последний параметр – куда сохранить конечный файл.

Также можете указать уровень компрессии, но для этого удалите ключ z и добавьте степень компрессии от 1 до 9.

Создание резервной копии
Архивируем только изменившиеся файлы, старые не трогаем

tar -cf — «/home/user1/docs/documents» | gzip -6 | gpg -c -o «/home/user1/docs/documents.tar.gz.gpg»

После выполнения команды появится запрос ввести и подтвердить пароль – укажите его дважды.

Архиватор шифрует содержимое контейнера при помощи приложения gpg:

tar -czf — «/home/lethal/Рабочий стол/arc» | gpg -c -o «/home/lethal/Рабочий стол/arc.tar.gz.gpg»

  • -z – задействует gz для компрессии, 
  • gpg -c, указанные через «|» зашифруют поток.
Процесс компрессии
В случае использования простой фразы приложение предложит заменить её

После также введите пароль вручную и запомните или запишите его. 

Пароль можно добавить в команду без запросов, но это опасно.

Появится файл сразу с тремя расширениями: tar – архив, gz – сжатый, gpg – запароленный: Backup.tar.gz.gpg.

Как создать зип-архив в Линуксе

Формат zip позволяет организовать кроссплатформенную работу, но из коробки не поддерживается в большинстве дистрибутивов Linux. Устанавливается командами:

sudo apt update

sudo apt install zip unzip

В Fedora и CentOS:

sudo dnf install zip unzip

Для сжатия объектов в терминале выполните:

zip «/home/user/directory/docs.zip» «/ home/user/directory/docs»

Синтаксис похож на tar, но параметры совпадают не все:

  • -r — архивирует папки рекурсивно – со всеми вложенными, а не только указанную,
  • -v — выведет подробный список файлов,
  • -q — тихий режим, без отображения списка,
  • -e – защита паролем, его будете вводить вручную после появления запроса,
  • -x — исключит все файлы по маске.

Архив появится по указанному пути.

Как в Linux разархивировать архив: tar.gz и zip

Пришло время извлечь файлы из архива.

Как открыть архив с помощью команды tar

Для просмотра содержимого в терминале выполните:

tar -tf «/home/lethal/dir/archive.tar.gz»

  • -t – отобразит только список каталогов/файлов, без подробностей.

Для вывода подробностей: размеры, привилегии, даты добавьте -v:

Список файлов и папок с деталями
Утилита отображает не только названия, но и дату изменения, точный размер объектов

tar -tvf «/home/lethal/dir/backup.tar.gz»

Узнать размер файла в удобочитаемом виде можно строкой:

ls -lh «/home/user2/desktop/arc.tar»

Как разархивировать tar через терминал

Для извлечения объекта выполните код.

mkdir -p backup – создаст новую папку, в ином случае разархивирует в текущую,

tar -xf «/home/user2/dir/python.tar» -C backup

Здесь backup – путь к каталогу, причём можно указать полный путь к папке, даже расположенной на ином диске или USB-накопителе.

mkdir -p «/lethal/backup»

tar -xvf «archive.tar.gz.gpg» -C «/lethal/backup»

Первая команда создаст каталог backup, вторая – распакует python.tar в эту директорию. 

Информация в консоли: создание и распаковка архива
Сведения об используемом алгоритме шифрования

Для gz используйте ключ -xzf, bzip2 – -xjf, xz – — xJf.

Как открыть и распаковать запароленный архив в Линукс

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

gpg -d «/home/user2/desktop/backup.tar.gz.gpg» | tar -tzf —

Здесь:

  • gpg – вызов утилиты для шифрования/расшифровки;
  • -d – decrypt – указывает на расшифровывание (запросит пароль);
  • дальше идёт пут к архиву в кавычках;
  • через | название приложения для просмотра содержимого:
  • -t – отобразит содержимое архива;
  • -z – указывает на использование gzip;
  • -f – говорит читать с классического потока.

Распаковка запароленного архива в активный каталог:

gpg -d «/home/user2/desktop/backup.tar.gz.gpg» | tar -xzf —

  • gpg -d – запуск шифровальщика с ключом указывает на расшифровку (нужно ввести пароль);
  • -x – распаковка содержимого архива.

Разархивирование в указанную директорию:

mkdir -p /home/user2/restore,

gpg -d «/home/user2/backup.tar.gz.gpg» | tar -xzf — -C /home/user2/restore

  • первая команда mkdir создаст новую директорию, если вы хотите извлечь в новую,
  • первый «-» перед C – указывает команде читать данные из стандартного потока ввода,
  • -C – принимает адрес для распаковки.

Tar — базовая утилита для объединения файлов и папок в Linux, которая сохраняет структуру каталогов, права доступа и метаданные. Она не сжимает информацию, но работает в связке с gzip, bzip2, xz и другими приложениями для компрессии. Программа позволяет создавать, извлекать, просматривать и обновлять архивы, поддерживает инкрементальное резервное копирование и объединение нескольких файлов, но работает без графического интерфейса. Запоминать все ключи не обязательно, главное, понять принцип работы с архиватором и знать, как посмотреть информацию о нём. Делается это командой —help.

Максим Корень
Максим Корень

Контент-менеджер, копирайтер с увлечениями и образованием в сфере IT. Года с 2016 пишу SEO-оптимизированные статьи преимущественно на тему электроники, высоких технологий и программного обеспечения. Имею опыт в создании, наполнении контентом и продвижении сайтов, монтаже видео, программировании, модостроении.

Мы будем рады услышать ваши мысли

ОСТАВИТЬ ОТВЕТ

EDDU.PRO
Logo
EDDU.PRO
Logo
Зарегистрировать новый аккаунт