
Как создать архив в linux. В этой статье рассмотрим популярные средства для архивирования файлов и папок. Зачем нужно архивирование? Для удобства хранения и перемещения файлов. С его помощью происходит объединение нескольких файлов или папок в один файл.
Следует понимать, что архивация и сжатие это не одно и тоже. Можно произвести архивацию без сжатия (уменьшения объема конечного файла) а можно сжать архив для экономии места на диске. Все зависит от задач.
- Работа с архивами при помощи утилиты TAR. Стандартный архиватор Linux
- Быстрые команды для наиболее частыого применения
- Как в linux архивировать папку по заданному пути
- Как распаковать tar архив в linux
- Создание архива в Linux с использованием сжатия
- Linux распаковать tar gz и tar bz2
- Как разделить большой архив tar на несколько файлов определенного размера (linux многотомный архив)?
- Создание и распаковка ZIP-архивов в linux
- Создаем zip-архив с паролем в Linux
- Распаковка zip-архива в Linux
- Создание и распаковка архива tar.xz в Linux
- Распаковка архива tar.xz
- Распаковка RAR в Linux
- Видео: Как создать архив в linux:
- Резюме
Работа с архивами при помощи утилиты TAR. Стандартный архиватор Linux
Стандартная утилита для создания архивов в linux — «tar». Синтаксис команды такой:
| 1 | tar опции имя_файла_архива файл_для_архивации |
Основные опции:
- c — создание нового архива
- f — имя файла для архива
- r — добавление файлов в конец архива
- x — извлечение файлов из архива
- t — вывод списка содержимого архива
- v — вывод сведений о работе программы
- -C — распаковать в указанную папку
Например. У меня есть папка «Test» и я хочу создать архив tar. Команда tar будет такой:
| 1 | tar cf Test.tar Test |
В результате получится файл архива «Test.tar»
Для того, что бы увидеть работу программы можно использовать опцию «v». Будет выведено какие файлы и папки добавлены в архив. Например:
| 1 | tar cvf Test.tar Test |
В данном случае архив создается с полной структурой папок.
Быстрые команды для наиболее частыого применения
| Задача | Команда в терминале | Описание | ||
| Как в Linux распаковать архив tar.gz, tar.bz2 или tar.xz (Универсальная распаковка через команду tar) |
| Автоопределение сжатия: Современная утилита GNU tar умеет самостоятельно определять тип компрессии по сигнатуре файла. Для извлечения достаточно универсального сочетания -xf (extract file). Ограничение переносимости: Это надежно работает только в средах с GNU tar. В минималистичных системах (BusyBox, Alpine Linux) или в macOS по умолчанию используется BSD-версия tar, которая может не поддерживать автоопределение. Для строгой переносимости в скриптах лучше явно указывать флаги сжатия (-z для gzip, -j для bzip2, -J для xz). | ||
| Распаковать и извлечь архив tar в другую конкретную папку (директорию) |
| Флаг -C (с заглавной буквы): Заставляет утилиту принудительно сменить рабочий каталог перед началом извлечения данных, что позволяет распаковать tar xf в папку по строго заданному пути. Ограничение: Целевая директория должна быть создана в Linux заранее. Сам tar её создавать не умеет и при отсутствии пути выдаст ошибку «No such file or directory». | ||
| Заархивировать папку в архив tar.gz (Архивация директории в Linux) |
| Строгий порядок флагов: Флаг -f (file) всегда обязан идти последним в группе параметров, так как сразу за ним ожидается имя файла. Требует внимания. Если ошибиться и написать параметры как -czfv , утилита воспримет c, z, f, v как отдельные независимые флаги. В этом случае флаг -f поглотит в качестве имени архива следующий доступный аргумент — ваш путь /путь/к/папке/. Команда выполнится без явных ошибок, но вместо архивации создаст странный файл с именем папки прямо в текущем каталоге. | ||
| Посмотреть содержимое и список файлов архива tar в Linux без распаковки |
| Флаг -tf (list): Выводит в окно терминала полный список путей и файлов внутри сжатого архива. Позволяет заранее просмотреть файлы и убедиться, что при извлечении они не «затопят» текущий рабочий каталог, а распакуются внутри одной аккуратной папки. Лучшая практика перед запуском чужих архивов. | ||
| Извлечь и распаковать конкретный файл или отдельную папку из архива tar |
| Точечное извлечение: Избавляет от необходимости разворачивать гигабайты данных ради одного конфига. Ловушка путей: Путь к файлу внутри команды должен до микрона совпадать с тем, как он записан внутри самого архива (это можно проверить заранее через флаг -tf ). | ||
| Исключить определенную папку или пропустить файлы при архивации в tar |
| Фильтрация мусора: Опция --exclude позволяет не включать в итоговый сжатый файл тяжелые логи, кэш или служебные каталоги (например, .git или node_modules). |
Ловушка абсолютных путей (начинающихся с /);
По умолчанию GNU tar срезает ведущий слэш (превращая /var/log в var/log), чтобы при извлечении вы случайно не затерли системные файлы.Однако флаг -P отключает эту защиту, принудительно распаковывая файлы прямо в корень ОС. Перед запуском всегда проверяйте структуру архива командой tar -tf. Вся ответственность за сохранность ваших системных директорий лежит исключительно на вас.
Как в linux архивировать папку по заданному пути
Часто нужно создать архив не заходя в директорию. Давайте рассмотрим пример как создать архив не сохраняя структуру а создать архив только нужной папки из дерева.
Например, у меня есть папка «test» и вложенные «test1/test2». Внутри каждой папки находится по одному файлу. Если использовать команду вида tar cf test.tar test/test1/test2 то будет архив tar со всеми папками и файлами включая и test и test1.
Чтобы сделать архив папки по определенному пути нужно использовать опцию --directory=КАТАЛОГ либо -C и в конце через пробел указываем нужную папку для архивации.
Пример использования linux tar с опцией «directory»:
| 1 | tar cf test2.tar --directory=test/test1/ test2 |
Теперь пример с опцией «-С»:
| 1 | tar cf test2.tar -C test/test1/ test2 |
Как видим результат одинаковый. Так, что используйте тот вариант который покажется более удобным.
Теперь давайте рассмотрим как добавить файл или папку в уже созданный архив. Для этого нужно использовать опцию «r». Пример. Добавить файл «file.txt» в архив «Test.tar». Используем команду:
| 1 | tar rf Test.tar file.txt |
Что бы просмотреть содержимое архива tar используйте команду:
| 1 | tar -tf Test.tar |
Будет отображено содержимое архива «Test».
Как распаковать tar архив в linux
Теперь давайте рассмотрим как распаковать или как еще говорится разархивировать архив tar. Для этого дайте команду:
| 1 | tar xf Test.tar |
Архив будет распакован в текущую папку. Как быть если нужно распаковать не весь архив а извлечь только нужный файл. Допустим я хочу извлечь файл «file.txt». Для этого нужно дать команду:
| 1 | tar xf Test.tar Test/file.txt |
Для того, чтобы извлечь архив в другой каталог используйте атрибут «-C». Например требуется распаковать архив в папку «Driver» находящуюся в директории «Zhelezo». Выполню команду:
| 1 | tar xf Test.tar -C Zhelezo/Driver/ |
Думаю с архивированием и разархивированием файлов и папок в линукс без сжатия все понятно.
Создание архива в Linux с использованием сжатия
Переходим к созданию сжатых архивов. Рассмотрим два основных метода сжатия Gzip (быстрее работает) и Bzip2 (лучше сжимает).
Пример сжатия tar gz linux, методом Gzip (утилита сжатия и восстановления (декомпрессии) файлов, использующая алгоритм Deflate):
Рассмотрим, как сжать папку с файлами — «Test». Для сжатия gzip используем tar z и расширение .gz :
| 1 | tar zcvf Test.tar.gz Test |
Пример сжатия Bzip2 (утилита для сжатия данных с помощью алгоритма Барроуза — Уилера.):
Архивация со сжатием Bzip2, используем утилиту tar j и расширение .bz2 :
| 1 | tar 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), используем команду:
| 1 | tar zxf Test.tar.gz |
Для распаковки bzip команду:
| 1 | tar jxf Test.tar.bz2 |
Как разделить большой архив tar на несколько файлов определенного размера (linux многотомный архив)?
Для передачи по сети файла большого размера иногда необходимо разделить его на более мелкие части. В данном примере я расскажу как сделать это с помощью утилиты split (читайте подробный обзор команды split в linux) . Работа с утилитой проста. Задаем ключ, затем указываем файл и префикс. Разберем на примере. Я «разобью» архив «Test.tar» на части по 10 килобайт:
| 1 | split -b 10K Test.tar "Test.tar.part" |
Размер задаётся целым числом и необязательной единицей изменения
(пример: 10K это 10*1024). Единицы изменения:
K, M, G, T, P, E, Z, Y (степень 1024) или KB, MB, … (степень 1000).
Можно разбить не по размеру а по частям указав количество. Например я разделю тестовый архив на 3 части. Для этого нужно использовать ключ -n . Пример:
| 1 | split -n3 Test.tar "Test.tar.part" |
Итак мы поняли как разделить архив и по размеру и обозначив желаемое количество частей. Теперь давайте посмотрим как собрать разделенный архив. Для этого будем использовать утилиту cat. Для объединения всех частей архива вводим команду:
| 1 | cat Test.tar.parta* > Test.tar |
Символ «*» после «.parta» обозначает, что нужно использовать все файлы с именем «parta». После выполнения команды файл будет объединен.
Создание и распаковка ZIP-архивов в linux
Переходим к работе с архивами zip в linux. Для работы нам потребуется утилита zip . По умолчанию она не установлена. Для инсталляции выполним команду:
| 1 | sudo apt install zip |
Маска для работы будет такой.:
| 1 | $ zip опции файл |
Основные опции утилиты zip:
- -r — рекурсивно обходить каталоги;
- -0 — только архивировать, без сжатия;
- -9 — максимальная степень сжатия;
Полную справку можно получить введя в терминале команду man zip .
Для создания архива зип нужно указать команду zip затем имя будущего архива с расширением .zip , затем имя файла для архивации:
| 1 | zip имя_файла.zip имя_файла.txt |
Если нужно добавить в архив сразу несколько файлов то перечислите их через пробел. Например:
| 1 | zip archive.zip file.txt file2.txt file3.txt |
Для архивирования папки используйте ключ -r. Например:
| 1 | zip -r archive.zip Folder |
Утилита поддерживает уровни сжатия которые задаются с помощью префикса от -0 (без сжатия) до -9 максимальный уровень. Если нужно сделать архив папки с максимальным сжатием то можно использовать такую команду:
| 1 | zip –r -9 archive.zip Folder |
Создаем zip-архив с паролем в Linux
С помощью утилиты «zip» можно создавать архивы с паролем. Для этого используется опция -P. Например:
| 1 | zip -P пароль имя_архива.zip имя_файла |
Так, что бы создать архив secure.zip в котором будет заархивирован файл «file.txt» с паролем «passwd» введите команду:
| 1 | zip -P passwd secure.zip file.txt |
Для того, что бы задавая пароль никто его не увидел укажите ключ -e или --encrypt . Например. Чтобы создать зашифрованный архив файла «file.txt» с именем «secure.zip» укажите команду:
| 1 | zip -e secure.zip file.txt |
После выполнения команды будет выдан запрос на задание пароля и подтверждения:
| 1 2 | Enter password: Verify password: |
Напомню, что при вводе пароля отображения символов не будет.
Установка степени сжатия для zip linux архива. Для утилиты zip можно указать насколько сильно необходимо сжать архив. Можно указать значение от 0 до 9. Здесь 0 это отсутствие сжатия, 9 — максимально. По умолчанию то есть без указания дополнительных параметров, выставлено значение 6. Пример. Для архивации папки «folder» без сжатия команда будет такой:
| 1 | zip -0 -r folder.zip folder |
Учитывайте, что чем выше укажете уровень сжатия тем выше нагрузка на систему и больше времени потребуется на операцию.
Распаковка zip-архива в Linux
Что бы распаковать zip в linux используйте команду unzip. Синтаксис такой: unzip имя_архива.zip. Например, что бы распаковать zip linux архив с именем «archive.zip» выполните:
| 1 | unzip archive.zip |
Файлы будут распакованы в текущую директорию. Если требуется распаковать в другую папку то нужно использовать параметр -d . Например. Нужно распаковать архив «archive.zip» в папку с названием «1» находящуюся в папке «Документы». Для этого даем команду:
| 1 | unzip -d ~/Документы/1 archive.zip |
Для распаковки зашифрованных архивов на которые был установлен пароль будет выдан запрос на ввод пароля а затем нужно подтвердить указав английскую букву «y».

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




















В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip .