Что такое tar?
tar - это сокращение от 'Tape Archive' (архив на ленте), изначально созданный для резервного копирования данных на магнитные ленты. В настоящее время он используется как стандартный инструмент Linux для объединения нескольких файлов и каталогов в один файл для удобства управления или передачи. Сам по себе tar только объединяет файлы, а сжатие указывается с помощью отдельных опций (-z, -j, -J).
Основные режимы работы
tar работает в одном из основных режимов за раз (создание, извлечение, список).
- -c (Create): Создает новый архивный файл.
- -x (Extract): Извлекает файлы из архивного файла.
- -t (List): Проверяет содержимое (список) архивного файла без распаковки.
- -f (File): Указывает 'файл' архива, с которым нужно работать. Обязателен почти для всех операций.
Основные опции (Shell)
tar используется путем комбинирования опций. Самое важное — выбрать одну из опций: `-c`, `-x` или `-t`.
1. Режимы работы (выберите один)
2. Указание файла и сжатия
3. Цель и дополнительные функции
Сгенерированная команда:
Комбинируйте команды.
Описание:
`tar` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры сценариев использования (Shell)
Примеры наиболее часто используемых комбинаций. (Дефис перед опциями можно опустить, но рекомендуется его указывать.)
Создание архива с gzip (.tar.gz)
tar -cvzf backup.tar.gz /home/user/data
c (создать), v (подробно), z (gzip), f (файл) + [результирующий файл] + [цель]
Распаковка архива gzip (.tar.gz)
tar -xvzf backup.tar.gz
x (извлечь), v (подробно), z (gzip), f (файл) + [целевой файл]
Просмотр содержимого сжатого файла (.tar.gz)
tar -tvf backup.tar.gz
t (список), v (подробно), f (файл) (современный tar автоматически определяет -z)
Распаковка в указанный каталог
tar -xvzf backup.tar.gz -C /opt/restore
Укажите путь с помощью опции -C.
Создание архива с bzip2 (.tar.bz2)
tar -cvjf archive.tar.bz2 ./docs
Используйте опцию j (bzip2) вместо z.
Распаковка архива bzip2 (.tar.bz2)
tar -xvjf archive.tar.bz2
Архивирование с исключением определенных файлов/каталогов
tar -cvzf app.tar.gz ./app --exclude="*.log" --exclude="node_modules"
Используйте опцию --exclude. (Можно использовать несколько раз)
Установка
tar по умолчанию установлен практически во всех дистрибутивах Linux (и macOS). (Обычно это GNU tar). Если по какой-либо причине требуется установка, его можно установить под именем пакета 'tar'.
Установлен по умолчанию
Отдельная установка практически не требуется. Попробуйте ввести tar --version, чтобы проверить версию.
Debian/Ubuntu (при необходимости)
sudo apt update && sudo apt install -y tar
RHEL/CentOS/Fedora (при необходимости)
sudo dnf install -y tar
Советы и примечания
Полезные советы
- Опущение дефиса (-): По старой традиции дефис в первой группе опций можно опустить, например,
tar cvf ...(т.е.tar cvf=tar -cvf). Однако для ясности рекомендуется использовать-. - Автоматическое определение сжатия: Современный
tarавтоматически определяет сжатие по расширению файла при извлечении (-x) даже без опций-z,-j,-J. (Например, достаточно ввестиtar -xf archive.tar.gz.) - Сохранение разрешений (-p): При восстановлении после резервного копирования системы важно использовать опцию
-pдля сохранения исходных разрешений и прав владения файлами. - Проблемы с путем (-C): Если вы хотите распаковать файлы не в текущее местоположение, а в другое, использование опции
-C /путьгораздо эффективнее, чем перемещение файлов. - Осторожно с абсолютными путями: Если вы архивируете файлы с абсолютным путем, например,
/home/userпри создании (-c), то при извлечении (-x) файлы будут распакованы по этому же абсолютному пути. (Современный tar может удалять начальный/из соображений безопасности.) По возможности безопаснее архивировать с относительными путями, например,cd /home && tar -cvf user.tar ./user.