3.8.4.3 Утилиты для архивации файлов в терминале
tar
bzip2
gzip
xz
zstd
zip
unrar
p7zip
Сравнительная таблица архиваторов
Окружение
- Версия РЕД ОС: 8
- Конфигурация: Рабочая станция
- Версия ПО: tar-1.35, bzip2-1.0.8, gzip-1.12, xz-5.2.5, zstd-1.5.5, zip-3.0, unrar-7.0.7, 7zip-24.07
Вы можете подробнее ознакомиться с работой утилит для архивирования, копирования и восстановления файлов, просмотрев наши обучающие видео:
на RuTube:
в Яндекс.Дзен:
в VK Видео:
На наших каналах вы также сможете найти много другой полезной информации.
tar
tar — это утилита для создания архивов, которая позволяет упаковывать файлы и каталоги в единый файл-архив, а также распаковывать их. Она не включает в себя алгоритмы сжатия данных, но созданные архивы могут быть сжаты с помощью дополнительных программ, таких как gzip, bzip2 или xz.
Установка
Пакет tar установлен в РЕД ОС по умолчанию. Если он не установлен, то для установки выполните команду:
sudo dnf install tar
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
tar [параметры] <файл_архива> [файлы]
Параметры
Основные параметры:
-A, --concatenate — присоединить существующий архив к другому;
-c, --create — создать новый архив;
-d, --diff — проверить различия между архивами;
-delete — удалить данные из архива;
-r, --append — добавить новые файлы в конец архива;
-t, --list — вывести список содержимого архива, если файлы не указаны, то вывести информацию обо всех файлах;
-u, --update — добавить новые файлы в конец архива;
-x, --extract — распаковать файлы из архива;
-C <dir> — изменить директорию на <dir> перед выполнением операции;
-f — вывести результат в file;
-p, --preserve-permissions — сохранить все права доступа;
-j, --bzip2 — использовать сжатие bzip2 при создании файла tar, в результате получается сжатый архив с расширением *.tar.bz2;
--version — показать версию программного обеспечения;
-v, --verbose — вывести всю информацию о текущем процессе и показать сведения об уже завершенном процессе.
Пример работы
1. Архивация файла в формат tar без сжатия:
tar -cf file.tar file.txt
2. Архивация каталога в формат tar без сжатия:
tar -cf files.tar ~/files
3. Отправка архива на удаленную машину через ssh-соединение:
tar -cvpz ./ | ssh root@10.81.1.190 "(cat > /home/user/ssh_backup.tar)"
4. Распаковка архива в текущий каталог:
tar -xvf file.tar
5. Распаковка архива в указанный каталог:
tar -xvf files.tar -С /home/root/folder
6. Просмотр содержимого архива без распаковки:
tar -t file.tar
bzip2
bzip2 — это утилита командной строки, предназначенная для сжатия и распаковки файлов. Она использует алгоритм сжатия текста с блочной сортировкой Барроуза-Уилера и кодирования Хаффмана. Он принимает список имен файлов в качестве входных данных и заменяет каждый файл его сжатой версией.
Установка
Пакет bzip2 установлен в РЕД ОС по умолчанию. Если он не установлен, то для установки выполните команду:
sudo dnf install bzip2
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
bzip2 [параметры] <файл>
Параметры
Основные параметры:
-d, --decompress — разархивировать файл;
-t, --test — проверить целостность архива;
-z, --compress — принудительно сжать;
-k, --keep — сохранить исходные файлы при архивации или разархивации;
-s — использовать меньше оперативной памяти за счет снижения скорости архивации, рекомендуется применять на компьютерах с малым объемом ОЗУ (8 Мбайт и меньше);
-v, --verbose — выводить дополнительную информацию в процессе работы;
-V, --version — показать версию программного обеспечения и лицензию;
-h, --help — вывести справку;
-1 — -9 — установка степени сжатия (чем больше число, тем выше степень сжатия).
Пример работы
1. Использование bzip2 для архивации одного файла:
bzip2 -9k file.tar
2. Использование bzip2 вместе с tar для сжатия нескольких файлов:
tar -cvjf file.tar.bz2 ~/files
3. Распаковка архива:
bzip2 -dk file.bz2
4. Распаковка сжатого tar-архива:
tar -xvjf file.tar.bz2
5. Проверка целостности без распаковки:
bzip2 -t file.bz2
gzip
gzip — утилита сжатия и восстановления файлов, использующая алгоритм Deflate. Gzip фокусируется на одном файле (текстовом документе, изображении или tar-архиве). *.gz — стандартное расширение для файлов, сжатых gzip. Файлы, сжатые с помощью tar, часто имеют расширение *.tar.gz или *.tgz. Файлы *.tar.gz сначала нужно разархивировать с помощью tar, а затем распаковать с помощью gzip.
Установка
Пакет gzip установлен в РЕД ОС по умолчанию. Если он не установлен, то для установки выполните команду:
sudo dnf install gzip
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
gzip [параметры] <файл>
Параметры
Основные параметры:
-d, --decompress — распаковать;
-t, --test — проверка целостности указанного(ых) файла(ов) без разархивации;
-k, --keep — сохранять исходные файлы при архивации или разархивации;
-l, --list — перечислить содержимое сжатого файла;
-h, --help — показать справку;
-r, --recursive — рекурсивно перемещаться по структуре каталогов (если какой-либо из файлов, указанных в командной строке, является каталогом, gzip перейдет в каталог и сожмет все найденные там файлы);
-v, --verbose — выводить дополнительную информацию в процессе работы;
-V, --version — показать версию программного обеспечения;
-1 – -9, — установка степени сжатия (чем больше число, тем выше степень сжатия).
Пример работы
1. Использование gzip для архивации одного файла:
gzip -9k file.tar
2. Использование gzip вместе с tar для сжатия нескольких файлов:
tar -cvzf files.tar.gz ~/files
3. Распаковка архива:
gzip -dk file.tar
4. Распаковка сжатого tar-архива:
tar -xvzf files.tar.gz
5. Проверка целостности без распаковки:
gzip -t file.bz2
xz
XZ — формат контейнера для архивов, использующий алгоритм сжатия LZMA2 и призванный заменить формат контейнера lzma. Как и форматы gzip и bzip2, он является контейнером для единственного файла, поэтому его обычно используют совместно с форматом tar.
Установка
Пакет xz-libs установлен в РЕД ОС по умолчанию. Если он не установлен, то для установки выполните команду:
sudo dnf install xz-libs
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
xz [параметры] <файл>
Параметры
Основные параметры:
-d — принудительная разархивация;
-z — сжимает входной файл (используется по умолчанию);
-t, --test — проверить целостность архива *.xz;
-k, --keep — сохранять исходные файлы при архивации или разархивации;
-c, --stdout — направить сжатые данные в стандартный вывод и не удалять входные файлы;
-v, --verbose — отображать процесс сжатия или распаковки файлов;
-0 – -9, — установка степени сжатия (чем больше число, тем выше степень сжатия).
Пример работы
1. Использование xz для архивации одного файла:
xz -9k file.tar
2. Использование xz вместе с tar для сжатия нескольких файлов:
tar -cvJf files.tar.gz ~/files
3. Распаковка архива:
xz -dk file.tar
4. Распаковка сжатого tar-архива:
tar -xvJf files.tar.gz
5. Проверка целостности без распаковки:
xz -t file.bz2
zstd
zstd — алгоритм сжатия данных без потерь. Алгоритм сочетает словарный алгоритм сжатия данных типа LZ77 и эффективное энтропийное кодирование типа ANS.
Установка
Пакет zstd установлен в РЕД ОС по умолчанию. Если он не установлен, то для установки выполните команду:
sudo dnf install zstd
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
zstd [параметры] <файл>
Параметры
Основные параметры:
-d — принудительная разархивация;
-t — проверка целостности указанного(ых) файла(ов) без разархивации;
-k — сохранять исходные файлы при архивации или разархивации;
-s — снижает требования к объему используемой оперативной памяти за счет снижения скорости архивации. Эту опцию рекомендуется применять на компьютерах с малым объемом ОЗУ (8 Мбайт и меньше);
-v — выводить дополнительную информацию в процессе работы (представляет интерес в диагностических целях);
-1 – -9, — установка степени сжатия (чем больше число, тем выше степень сжатия).
Пример работы
1. Использование zstd для архивации одного файла:
zstd -19k file.tar
2. Использование zstd вместе с tar для сжатия нескольких файлов:
tar --zstd -cvf files.tar.gz ~/files
3. Распаковка архива:
zstd -dk file.tar
4. Распаковка сжатого tar-архива:
tar --zstd -xvf files.tar.gz
5. Проверка целостности без распаковки:
zstd -t file.bz2
zip
zip — утилита для создания сжатых архивов. Zip-архивы очень часто используются для обмена файлами в интернете. С помощью этой утилиты можно сжимать как файлы, так и папки.
Установка
Пакет zip установлен в РЕД ОС по умолчанию. Если он не установлен, то для установки выполните команду:
sudo dnf install zip
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
zip [параметры] <имя_архива> <файлы>
Параметры
Основные параметры:
-d — удалить файл из архива;
-r — рекурсивное архивирование, то есть с вхождением во вложенные каталоги;
-0 — только архивировать, без сжатия;
-9 — наилучшая степень сжатия;
-F — исправить zip-файл;
-e — шифровать файлы.
Пример работы
1. Архивация каталога:
zip archive.zip -r /var/log/
2. Архивация выбранных файлов:
zip archive.zip file1.txt file2.txt
3. Архивация файла с максимальной степенью сжатия:
zip -9 file1.zip file1.txt
4. Распаковка архива:
unzip archive.zip
5. Распаковка в конкретную директорию:
unzip archive.zip -d /tmp
6. Извлечение определенного файла из архива:
unzip archive.zip file2.log
7. Проверка содержимого архива без распаковки:
unzip -l archive.zip
8. Проверка целостности архива без распаковки:
unzip -t archive.zip
unrar
unrar — это инструмент на базе терминала, разработанный для извлечения и открытия RAR в таких системах, как Linux.
Установка
Для установки пакета используется команда:
sudo dnf install unrar
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
unrar [параметры] <имя_архива> [<путь_разархивирования>]
Параметры
Основные параметры:
e — распаковать архив;
l — вывести список файлов внутри архива;
p — вывести распакованный файл в стандартный вывод;
t — проверить архив;
v — вывести подробную информацию про архив;
x — извлечь файлы, сохраняя полный путь внутри архива.
-ad — добавить имя архива к пути распаковки;
-ai — игнорировать атрибуты файлов;
-inul — не выводить сообщения об ошибках;
-p — указать пароль архива;
-sl — распаковывать только файлы, меньше указанного размера;
-u — обновить уже распакованные файлы;
-y — отвечать y на все запросы;
-x — не распаковывать указанные файлы;
-ts — сохранять временную метку исходных файлов.
Пример работы
1. Распаковка архива в текущий каталог:
unrar x archive.rar
2. Распаковка архива в конкретный каталог:
unrar x archive.rar ./folder
p7zip
p7zip — файловый архиватор с высокой степенью сжатия данных благодаря формату 7z с компрессией LZMA. Кроме формата 7z поддерживает также ZIP, GZIP, BZIP2 и TAR.
Установка
Пакет p7zip установлен в РЕД ОС по умолчанию. Если он не установлен, то для установки выполните команду:
sudo dnf install p7zip
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
7z [параметры] <имя_архива> [<файлы>]
Параметры
Основные параметры:
a — добавить файлы в архив;
d — удалить файлы из архива;
e — извлечь файлы из архива (без использования имён директорий);
l — просмотреть содержимое архива;
t — тестировать архив на целостность;
u — обновить файлы в архиве;
x — извлечь файлы из архива с полными путями;
-mx0 — -mx9 — уровень компрессии (-mx0 — без компрессии, -mx9 — самая большая компрессия).
Пример работы
1. Создание архива в текущем каталоге:
7z a archive.7z
2. Создание архива из выбранных файлов:
7z a archive.7z file file1 file2
3. Создание архива с максимальной степенью сжатия:
7z a -mx9 archive.7z
4. Создание архива в указанной директории:
7z a /home/user/archive.7z
5. Распаковка архива в текущую директорию:
7z x archive.7z
6. Распаковка архива в определенную директорию:
7z x archive.7z -o./files
7. Для просмотра содержимого архива используется команда:
7z l archive.7z
8. Проверка целостности архива:
7z t archive.7z
Сравнительная таблица архиваторов
Для теста использовались файлы различных форматов общим размером 1350 МБ.
| Стандартное сжатие | Максимальное сжатие | ||
---|---|---|---|---|
Итоговый размер (МБ) | Время (сек) | Итоговый размер (МБ) | Время (сек) | |
bzip2 | 943 | 336 | 943 | 342 |
gzip | 955 | 105 | 954 | 110 |
xz | 856 | 966 | 847 | 1652 |
zstd | 934 | 43 | 873 | 1339 |
zip | 956 | 91 | 955 | 125 |
7z | 851 | 659 | 845 | 1001 |
По результатам тестирования видно, что 7z обеспечивает наилучшую степень сжатия, в то время как zstd показывает меньшее время компрессии при стандартном сжатии.
Дата последнего изменения: 28.01.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.