Утилиты для архивации и распаковки файлов
В данной инструкции рассмотрены популярные утилиты для архивации и распаковки файлов, доступные в ОС МСВСфера:
tar
bzip2
gzip
xz
zstd
zip
unrar
Окружение
МСВСфера АРМ/Сервер версии 8.x.
МСВСфера АРМ/Сервер версии 9.x.
tar
tar — один из самых популярных инструментов архивации файлов в ОС семейства Linux. Утилита tar установлена в МСВСфера по умолчанию.
Синтаксис
$ tar [параметры] <файл_архива> [файлы]
Параметры
-A
,--concatenate
— присоединить существующий архив к другому;-c
,--create
— создать новый архив;-t
,--list
— вывести список содержимого архива, если файлы не указаны, то вывести информацию обо всех файлах;-x
,--extract
— распаковать файлы из архива;-f
— вывести результат в file;-C <dir>
— изменить директорию на<dir>
перед выполнением операции;-j
,--bzip2
— использовать сжатие bzip2 при создании файлаtar
, в результате получается сжатый архив с расширением*.tar.bz2
;-v
,--verbose
— вывести всю информацию о текущем процессе и показать сведения об уже завершённом процессе.
Примеры использования
Архивация файла в формат tar
без сжатия:
$ tar -cf file.tar file.txt
Aрхивация каталога в формат tar
без сжатия:
$ tar -cf files.tar ~/files
Распаковка архива в текущий каталог:
$ tar -xf files.tar
Распаковка архива в указанный каталог:
$ tar -xf files.tar -C /home/folder
Просмотр содержимого архива без распаковки:
$ tar -t files.tar
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man tar
bzip2
bzip2 — это утилита командной строки, предназначенная для сжатия и распаковки файлов. Она использует алгоритм сжатия текста с блочной сортировкой Барроуза-Уилера и кодирования Хаффмана. Принимает список имён файлов в качестве входных данных и заменяет каждый файл его сжатой версией. Утилита установлена в ОС МСВСфера по умолчанию.
Примечание
Утилита bzip2 может работать только с одиночными файлами. Для работы с несколькими файлами или папками можно использовать эту утилиту вместе с tar. Пример такого варианта использования приведён ниже.
Синтаксис
$ bzip2 [параметры] <файл>
Параметры
-d
,--decompress
— разархивировать файл;-t
,--test
— проверить целостность архива;-z
,--compress
— принудительно сжать;-k
,--keep
— сохранить исходные файлы при архивации или разархивации;-s
— использовать меньше оперативной памяти за счёт снижения скорости архивации, рекомендуется применять на компьютерах с малым объемом ОЗУ (8 Мбайт и меньше);-v
,--verbose
— выводить дополнительную информацию в процессе работы;-V
,--version
— показать версию программного обеспечения и лицензию;-h
,--help
— вывести справку;-1
—-9
— установить степень сжатия (чем больше число, тем выше степень сжатия).
Примеры использования
Архивация одного файла с наивысшей степенью сжатия и с сохранением исходного файла. В результате будет создан новый файл с расширением .bz2
:
$ bzip2 -9k file.txt
Распаковка файла в текущую папку с сохранением исходного архива:
$ bzip2 -dk file.txt.bz2
Архивация файла с использованием tar для сжатия нескольких файлов:
$ tar -cjf file.tar.bz2 file1 file2 file3
Распаковака архива .tar.bz2
в текущую папку:
$ tar -xjf file.tar.bz2
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man bzip2
gzip
gzip — один из самых популярных алгоритмов сжатия, который позволяет уменьшить размер файла и сохранить исходный режим файла, владельца и отметку времени. Утилита установлена в ОС МСВСфера по умолчанию.
Примечание
Для запаковки нескольких файлов в один архив можно использовать эту утилиту вместе с tar. Пример такого варианта использования приведён ниже.
Синтаксис
$ gzip [опция] [файл]
Параметры
-c
,--stdout
— печатать в стандартный вывод, сохранять исходные файлы без изменений;-d
,--decompress
— распаковать архив;-k
,--keep
— сохранить исходный файл;-l
,--list
— отобразить содержимое архива;-t
,--test
— проверить целостность архива;-1
—-9
— установить степень сжатия (чем больше число, тем выше степень сжатия);-r
,--recursive
— рекурсивная работа с каталогом;-h
,--help
— вывести справку по использованию утилиты.
Примеры использования
Архивация файла с сохранением исходного файла:
$ gzip -k file.txt
Распаковка архива с сохранением исходного файла (архива):
$ gzip -dk file.txt.gz
Архивация нескольких файлов:
$ gzip file1.txt file2.txt
Примечание
В результате будет создано 2 архива: file1.txt.gz
и file2.txt.gz
.
Архивация нескольких файлов в один архив:
$ tar -czf files.tar.gz file1.txt file2.txt
Распаковка архива с несколькими файлами в текущую папку:
$ tar -xzf files.tar.gz
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man gzip
xz
xz — формат контейнера для архивов, использующий алгоритм сжатия LZMA2
и призванный заменить формат
контейнера lzma
. Как и форматы gzip
и bzip2
, он является контейнером для единственного файла,
поэтому его обычно используют совместно с форматом tar
. Утилита установлена в ОС МСВСфера по умолчанию.
Синтаксис
$ xz [параметры] <файл>
Параметры
-d
— принудительная разархивация;-z
— сжимает входной файл (используется по умолчанию);-t
,--test
— проверить целостность архива*.xz
;-k
,--keep
— сохранять исходные файлы при архивации или разархивации;-c
,--stdout
— направить сжатые данные в стандартный вывод и не удалять входные файлы;-v
,--verbose
— отображать процесс сжатия или распаковки файлов;-0
–-9
, — установить степень сжатия (чем больше число, тем выше степень сжатия).
Примеры использования
Архивация файла с сохранением исходного файла c максимальной степенью сжатия:
$ xz -9k file.txt
Распаковка архива:
$ xz -d file.txt.xz
Архивация нескольких файлов в один архив с помощью tar:
$ tar -cJf files.tar.xz file1.txt file2.txt
Распаковка сжатого .tar.xz
архива в текущую папку:
$ tar -xJf files.tar.xz
Проверка целостности без распаковки:
$ xz -t files.tar.xz
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man xz
zstd
zstd — алгоритм сжатия данных без потерь. Алгоритм сочетает словарный алгоритм сжатия данных типа LZ77 и эффективное энтропийное кодирование типа ANS. Утилита установлена в ОС МСВСфера по умолчанию.
Синтаксис
$ zstd [параметры] <файл>
Параметры
-d
— принудительная разархивация;-t
— проверка целостности указанного(ых) файла(ов) без разархивации;-k
— сохранять исходные файлы при архивации или разархивации;-s
— снижает требования к объёму используемой оперативной памяти за счет снижения скорости архивации. Эту опцию рекомендуется применять на компьютерах с малым объемом ОЗУ (8 Мбайт и меньше);-v
— выводить дополнительную информацию в процессе работы (представляет интерес в диагностических целях);-1
–-9
— установить степень сжатия (чем больше число, тем выше степень сжатия).
Примеры использования
Архивация файла с сохранением исходного файла c максимальной степенью сжатия:
$ zstd -9k file.txt
Распаковка архива с сохранением исходного файла:
$ zstd -dk file.txt.zst
Использование zstd вместе с tar для сжатия нескольких файлов:
$ tar --zstd -cf files.tar.zst file1.txt file2.txt
Распаковка архива .tar.zst
:
$ tar --zstd -xf files.tar.zst
Проверка целостности архива без распаковки:
$ zstd -t file.txt.zst
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man zstd
zip
zip — утилита для создания сжатых архивов. Zip-архивы очень часто используются для обмена файлами в Интернете. С помощью этой утилиты можно сжимать как файлы, так и папки. Утилита установлена в ОС МСВСфера по умолчанию.
Синтаксис
$ zip [параметры] <имя_архива> <файлы>
Параметры
-d
— удалить файл из архива;-r
— рекурсивное архивирование, то есть с вхождением во вложенные каталоги;-0
— только архивировать, без сжатия;-9
— наилучшая степень сжатия;-F
— исправить zip-файл;-e
— шифровать файлы.
Примеры использования
Архивация каталога:
$ zip archive.zip -r /home/folder
Архивация нескольких файлов:
$ zip archive.zip file1.txt file2.txt
Архивация файла с максимальной степенью сжатия:
$ zip -9 archive.zip file1.txt
Распаковка архива в текущую папку:
$ unzip archive.zip
Распаковка в определённую папку:
$ unzip archive.zip -d /tmp
Извлечение определённого файла из архива:
$ unzip archive.zip file2.log
Проверка содержимого архива без распаковки:
$ unzip -l archive.zip
Проверка целостности архива без распаковки:
$ unzip -t archive.zip
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man 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
— сохранять временную метку исходных файлов.
Примеры использования
Распаковка архива в текущую папку:
$ unrar x archive.rar
Распаковка архива в определенную папку:
$ unrar x archive.rar /home/folder
Дополнительную информацию о работе утилиты вы можете получить из руководства:
$ man unrar