
Как создать архив в linux. В этой статье рассмотрим популярные средства для архивирования файлов и папок. Зачем нужно архивирование? Для удобства хранения и перемещения файлов. С его помощью происходит объединение нескольких файлов или папок в один файл.
Следует понимать, что архивация и сжатие это не одно и тоже. Можно произвести архивацию без сжатия (уменьшения объема конечного файла) а можно сжать архив для экономии места на диске. Все зависит от задач.
Работа с архивами при помощи утилиты TAR. Стандартный архиватор Linux
Стандартная утилита для создания архивов в linux — «tar». Синтаксис команды такой:
tar опции имя_файла_архива файл_для_архивации1tar опции имя_файла_архива файл_для_архивации
Основные опции:
- c — создание нового архива
- f — имя файла для архива
- r — добавление файлов в конец архива
- x — извлечение файлов из архива
- t — вывод списка содержимого архива
- v — вывод сведений о работе программы
- -C — распаковать в указанную папку
Например. У меня есть папка «Test» и я хочу создать архив tar. Команда tar будет такой:
tar cf Test.tar Test1tar cf Test.tar Test
В результате получится файл архива «Test.tar»
Для того, что бы увидеть работу программы можно использовать опцию «v». Будет выведено какие файлы и папки добавлены в архив. Например:
tar cvf Test.tar Test1tar cvf Test.tar Test
В данном случае архив создается с полной структурой папок.
Как в linux архивировать папку по заданному пути
Часто нужно создать архив не заходя в директорию. Давайте рассмотрим пример как создать архив не сохраняя структуру а создать архив только нужной папки из дерева.
Например, у меня есть папка «test» и вложенные «test1/test2». Внутри каждой папки находится по одному файлу. Если использовать команду вида tar cf test.tar test/test1/test2 то будет архив tar со всеми папками и файлами включая и test и test1.
Чтобы сделать архив папки по определенному пути нужно использовать опцию —directory=КАТАЛОГ либо -C и в конце через пробел указываем нужную папку для архивации.
Пример использования linux tar с опцией «directory»:
tar cf test2.tar —directory=test/test1/ test21tar cf test2.tar —directory=test/test1/ test2
Теперь пример с опцией «-С»:
tar cf test2.tar -C test/test1/ test21tar cf test2.tar -C test/test1/ test2
Как видим результат одинаковый. Так, что используйте тот вариант который покажется более удобным.
Теперь давайте рассмотрим как добавить файл или папку в уже созданный архив. Для этого нужно использовать опцию «r». Пример. Добавить файл «file.txt» в архив «Test.tar». Используем команду:
tar rf Test.tar file.txt1tar rf Test.tar file.txt
Что бы просмотреть содержимое архива tar используйте команду:
tar -tf Test.tar1tar -tf Test.tar
Будет отображено содержимое архива «Test».
Как распаковать tar архив в linux
Теперь давайте рассмотрим как распаковать или как еще говорится разархивировать архив tar. Для этого дайте команду:
tar xf Test.tar1tar xf Test.tar
Архив будет распакован в текущую папку. К
ак быть если нужно распаковать не весь архив а извлечь только нужный файл. Допустим я хочу извлечь файл «file.txt». Для этого нужно дать команду:
tar xf Test.tar Test/file.txt1tar xf Test.tar Test/file.txt
Для того, чтобы извлечь архив в другой каталог используйте атрибут «-C». Например требуется распаковать архив в папку «Driver» находящуюся в директории «Zhelezo». Выполню команду:
tar xf Test.tar -C Zhelezo/Driver/1tar xf Test.tar -C Zhelezo/Driver/
Думаю с архивированием и разархивированием файлов и папок в линукс без сжатия все понятно.
Создание архива в Linux с использованием сжатия
Переходим к созданию сжатых архивов. Рассмотрим два основных метода сжатия Gzip (быстрее работает) и Bzip2 (лучше сжимает).
Пример сжатия tar gz linux, методом Gzip (утилита сжатия и восстановления (декомпрессии) файлов, использующая алгоритм Deflate):
Рассмотрим, как сжать папку с файлами — «Test». Для сжатия gzip используем tar z и расширение .gz :
tar zcvf Test.tar.gz Test1tar zcvf Test.tar.gz Test
Пример сжатия Bzip2 (утилита для сжатия данных с помощью алгоритма Барроуза — Уилера.):
Архивация со сжатием Bzip2, используем утилиту tar j и расширение .bz2 :
tar jcvf Test.tar.bz2 Test1tar jcvf Test.tar.bz2 Test
Получили два архива «Test.tar.bz2» и «Test.tar.gz».
Linux распаковать tar gz и tar bz2
Разархивировать tar gz в linux. Распаковать сжатые файлы можно способом описанным выше либо так же используя tar z и tar j . Например, чтобы распаковать gz файл (gzip), используем команду:
tar zxf Test.tar.gz1tar zxf Test.tar.gz
Для распаковки bzip команду:
tar jxf Test.tar.bz21tar jxf Test.tar.bz2
Как разделить большой архив tar на несколько файлов определенного размера (linux многотомный архив)?
Для передачи по сети файла большого размера иногда необходимо разделить его на более мелкие части. В данном примере я расскажу как сделать это с помощью утилиты split. Работа с утилитой проста. Задаем ключ, затем указываем файл и префикс. Разберем на примере. Я «разобью» архив «Test.tar» на части по 10 килобайт:
split -b 10K Test.tar «Test.tar.part»1split -b 10K Test.tar «Test.tar.part»
Размер задаётся целым числом и необязательной единицей изменения
(пример: 10K это 10*1024). Единицы изменения:
K, M, G, T, P, E, Z, Y (степень 1024) или KB, MB, … (степень 1000).
Можно разбить не по размеру а по частям указав количество. Например я разделю тестовый архив на 3 части. Для этого нужно использовать ключ -n . Пример:
split -n3 Test.tar «Test.tar.part»1split -n3 Test.tar «Test.tar.part»
Итак мы поняли как разделить архив и по размеру и обозначив желаемое количество частей. Теперь давайте посмотрим как собрать разделенный архив. Для этого будем использовать утилиту cat. Для объединения всех частей архива вводим команду:
cat Test.tar.parta* > Test.tar1cat Test.tar.parta* > Test.tar
Символ «*» после «.parta» обозначает, что нужно использовать все файлы с именем «parta». После выполнения команды файл будет объединен.
Создание и распаковка ZIP-архивов в linux
Переходим к работе с архивами zip в linux. Для работы нам потребуется утилита zip . По умолчанию она не установлена. Для инсталляции выполним команду:
sudo apt install zip1sudo apt install zip
Маска для работы будет такой.:
$ zip опции файл1$ zip опции файл
Основные опции утилиты zip:
- -r — рекурсивно обходить каталоги;
- -0 — только архивировать, без сжатия;
- -9 — максимальная степень сжатия;
Полную справку можно получить введя в терминале команду man zip .
Для создания архива зип нужно указать команду zip затем имя будущего архива с расширением .zip , затем имя файла для архивации:
zip имя_файла.zip имя_файла.txt1zip имя_файла.zip имя_файла.txt
Если нужно добавить в архив сразу несколько файлов то перечислите их через пробел. На
пример:
zip archive.zip file.txt file2.txt file3.txt1zip archive.zip file.txt file2.txt file3.txt
Для архивирования папки используйте ключ -r. Например:
zip -r archive.zip Folder1zip -r archive.zip Folder
Утилита поддерживает уровни сжатия которые задаются с помощью префикса от -0 (без сжатия) до -9 максимальный уровень. Если нужно сделать архив папки с максимальным сжатием то можно использовать такую команду:
zip –r -9 archive.zip Folder1zip –r -9 archive.zip Folder
Создаем zip-архив с паролем в Linux
С помощью утилиты «zip» можно создавать архивы с паролем. Для этого используется опция -P. Например:
zip -P пароль имя_архива.zip имя_файла1zip -P пароль имя_архива.zip имя_файла
Так, что бы создать архив secure.zip в котором будет заархивирован файл «file.txt» с паролем «passwd» введите команду:
zip -P passwd secure.zip file.txt1zip -P passwd secure.zip file.txt
Для того, что бы задавая пароль никто его не увидел укажите ключ -e или —encrypt . Например. Чтобы создать зашифрованный архив файла «file.txt» с именем «secure.zip» укажите команду:
zip -e secure.zip file.txt1zip -e secure.zip file.txt
После выполнения команды будет выдан запрос на задание пароля и подтверждения:
Enter password: Verify password:12Enter password: Verify password:
Напомню, что при вводе пароля отображения символов не будет.
Установка степени сжатия для zip linux архива. Для утилиты zip можно указать насколько сильно необходимо сжать архив. Можно указать значение от 0 до 9. Здесь 0 это отсутствие сжатия, 9 — максимально. По умолчанию то есть без указания дополнительных параметров, выставлено значение 6. Пример. Для архивации папки «folder» без сжатия команда будет такой:
zip -0 -r folder.zip folder1zip -0 -r folder.zip folder
Учитывайте, что чем выше укажете уровень сжатия тем выше нагрузка на систему и больше времени потребуется на операцию.
Распаковка zip-архива в Linux
Что бы распаковать zip в linux используйте команду unzip. Синтаксис такой: unzip имя_архива.zip. Например, что бы распаковать zip linux архив с именем «archive.zip» выполните:
unzip archive.zip1unzip archive.zip
Файлы будут распакованы в текущую директорию. Если требуется распаковать в другую папку то нужно использовать параметр -d . Например. Нужно распаковать архив «archive.zip» в папку с названием «1» находящуюся в папке «Документы». Для этого даем команду:
unzip -d ~/Документы/1 archive.zip1unzip -d ~/Документы/1 archive.zip
Для распаковки зашифрованных архивов на которые был установлен пароль будет выдан запрос на ввод пароля а затем нужно подтвердить указав английскую букву «y».

Создание и распаковка архива tar.xz в Linux
Некоторые программы распространяются в этом формате.
Ещё один популярный формат архива в линукс .xz. Используется алгоритм сжатия LZMA2, такой же как и в 7z имеющий очень высокую степень сжатия. Расплачиваться за это придется нагрузкой на процессор и большее использование памяти по сравнению .gzip и .bzip2.
В этом разделе я расскажу как создавать и как распаковать tar.xz файл в Linux. Для работы потребуется поддержка утилиты сжатия XZ. Если её нет то установите командой:
sudo apt install xz-utils1sudo apt install xz-utils
Синтаксис для создания архива tar.xz такой:
tar cfJ имя_архива.tar.xz и
мя_файла1tar cfJ имя_архива.tar.xz имя_файла
- c — создать архив
- f — имя файла
- J — указывает на создание архива xz
- v или —verbose — можно указать для отображения добавленных в архив файлов
Если передаете аргументы tar с дефисами (например, tar -cf в отличие от tar cf), тогда опция -f должна быть последней , поскольку она указывает имя файла.
Для примера создадим архив папки Test. Для этого дадим команду:
tar cfJ Test.tar.xz Test1tar cfJ Test.tar.xz Test
Создан архив Test.tar.xz. Для распаковки архива синтаксис такой:
tar xf имя_файла.tar.xz1tar xf имя_файла.tar.xz
Распаковка архива tar.xz
Для примера распакуем созданный ранее архив папки Test. Для этого нужно дать команду:
tar xf Test.tar.xz1tar xf Test.tar.xz
- x — извлечь файлы
- f — имя файла архива
На этом с архивами формата xz разобрались.
Распаковка RAR в Linux
Для распаковки «RAR» архивов в Linux используется утилиты unrar-free свободное программное обеспечение и unrar . По умолчанию онb не устанавливаются. Для инсталляции используйте команду:
sudo apt install unrar-free1sudo apt install unrar-free
Либо установите несвободную утилиту командой:
sudo apt install unrar1sudo apt install unrar
Программа unrar-free не всегда может распаковать некоторые архивы RAR 3.0. Для распаковки таких архивов потребуется unrar. Но, чтобы установить несвободные программы у вас должен быть подключен репозиторий non-free.
Рассмотрим как работать с утилитой unrar-free.
Для просмотра файлов в архиве используется ключ -t. Например:
unrar –t archive.rar1unrar –t archive.rar
Для извлечения файлов из архива rar используйте команду unrar с ключом -x . Например, что бы распаковать архив «archive.rar» используйте команду:
unrar -x archive.rar1unrar -x archive.rar
Рассмотри работу с утилитой unrar:
Основные опции:
- e — извлечь файлы в текущий каталог;
- l — cписок содержимого архива;
- p — вывести файл на стандартный вывод;
- t — протестировать архив;
- v — вывести информация об архиве;
- x — извлечь файлы с полным путем
Пример. Извлечем каталог archive.rar, для этого выполним команду:
unrar e archive.rar1unrar e archive.rar
файлы будут распакованы в ту папку в которой находитесь.
Более полную информацию по работе программ всегда можно получить указав в терминале:
имя программы —help — Краткая справкаman имя программы — Подробная справка12имя программы —help — Краткая справкаman имя программы — Подробная справка
На этом все. Думаю с архивированием в линукс разобрались.
Видео: Как создать архив в linux:
Резюме
В заключении можно отметить, что создание архивов в Linux — это удобный способ защиты и хранения файлов. Мы рассмотрели основные способы, как заархивировать папку с помощью различных утилит и опций, а также рассмотрели сжатие файлов с расширением tar, zip, gzip, bzip2, gz, bz2, rar и xz. Каждая утилита имеет свой синтаксис и команды для выполнения операций, таких как создание, распаковка и просмотр архивов.
Рекомендуется использовать опции сжатия для уменьшения размера архивов и ускорения передачи файлов. Не забывайте, что распаковка архивов может быть выполнена с помощью соответствующих утилит, таких как unzip. Создание архивов в Linux — это простой и эффективный способ управления вашими файлами, который может быть особенно полезен при работе с большим объемом данных.






