Утилита tar (от tape archive) используется для архивирования и извлечения файлов и каталогов в Linux. Это мощный инструмент, который поддерживает различные операции, такие как создание архивов, их распаковка, сжатие и проверка целостности.
Основные флаги tar
Основные операции:
-c: Создание нового архива (create).
-x: Извлечение из архива (extract).
-t: Просмотр содержимого архива (list).
Настройка ввода/вывода:
-f: Указывает файл архива (archive file). Без этого флага tar будет работать с устройствами ввода/вывода.
-C: Указывает директорию для извлечения (change to directory).
Сжатие:
-z: Сжатие/распаковка с помощью Gzip (.tar.gz или .tgz).
-j: Сжатие/распаковка с помощью Bzip2 (.tar.bz2).
-J: Сжатие/распаковка с помощью XZ (.tar.xz).
Права доступа:
-p: Сохраняет права доступа файлов при извлечении.
--same-owner: Сохраняет владельцев файлов (требуются root-права).
Вывод:
-v: Подробный вывод действий (verbose).
--progress: Показывает прогресс выполнения (в новых версиях).
Проверка и восстановление:
--verify: Проверяет целостность архива после создания.
--remove-files: Удаляет исходные файлы после добавления в архив.
Примеры использования tar
- Создание архива
Архивирование без сжатия:
tar -cvf archive_name.tar /path/to/directory
-c: Создать архив.
-v: Показать, какие файлы добавляются.
-f: Указать имя архива.
Архивирование с сжатием Gzip:
tar -cvzf archive_name.tar.gz /path/to/directory
-z: Использовать Gzip.
Архивирование с сжатием Bzip2:
tar -cvjf archive_name.tar.bz2 /path/to/directory
-j: Использовать Bzip2.
Архивирование с сжатием XZ:
tar -cvJf archive_name.tar.xz /path/to/directory
-J: Использовать XZ.
- Извлечение архива
Извлечение из несжатого архива:
tar -xvf archive_name.tar
-x: Извлечение файлов.
Извлечение из архива Gzip:
tar -xvzf archive_name.tar.gz
Извлечение из архива в определенную директорию:
tar -xvf archive_name.tar -C /path/to/extract
-C: Указать директорию для извлечения.
- Просмотр содержимого архива
Вывести список файлов:
tar -tvf archive_name.tar
- Добавление файлов в существующий архив
Добавление файла:
tar -rvf archive_name.tar file_to_add
-r: Добавить файл.
- Проверка архива
Проверить целостность:
tar -tvf archive_name.tar
Полезные советы
Сохранение прав доступа и владельцев: Для архивирования системных файлов:
sudo tar -cvpf system_backup.tar /etc /home
-p: Сохраняет права доступа.
--same-owner: Сохраняет владельцев.
Игнорирование ошибок: Если в процессе встречаются ошибки:
tar -cvpf archive_name.tar /path/to/files --ignore-failed-read
Сравнение размера архива: После создания архива:
du -h archive_name.tar
Типичные сценарии
- Создание резервной копии
Создать архив домашней директории и сохранить в /backup:
sudo tar -cvpzf /backup/home_backup.tar.gz /home
- Перенос веб-сайта
Архивировать сайт:
tar -cvzf website_backup.tar.gz /var/www/html
Распаковать на другом сервере:
tar -xvzf website_backup.tar.gz -C /var/www/html
Заключение
tar — это мощный инструмент для работы с архивами. Благодаря множеству флагов вы можете настроить процесс архивации под любые задачи. Независимо от того, создаете ли вы резервные копии или переносите данные, tar остается надежным выбором для системных администраторов и пользователей Linux.


Комментарии