Архивы в Linux: команды tar, zip, 7z и практическое руководство
Кратко: команды в терминале — самый быстрый и гибкий способ работать с архивами в Linux. В статье собраны основные форматы (tar, gzip, zip, bzip2, 7z, rar, ace), пример синтаксиса, практические советы и готовые чек‑листы для разработчиков и администраторов.
Важно: команды нужно выполнять аккуратно — заранее создавайте архивы одиночной папки, чтобы при распаковке файлы не смешивались с существующими.
Введение
Графические интерфейсы удобны, но командная строка в Linux даёт скорость и контроль. Разные форматы архивов имеют свои особенности: скорость, уровень сжатия, поддержка метаданных и совместимость. Ниже — краткая справка по основным форматам, затем расширенные рекомендации, сравнение и готовые процедуры.
1. Tar — упаковка контейнера
tar — универсальный инструмент для упаковки множества файлов в один архив. Сама по себе команда не сжимает, но часто используется в связке с gzip или bzip2.
Создать архив (без сжатия):
tar -cvf archive.tar directory-to-archiveОбозначения: «c» — создать, «v» — подробный вывод, «f» — имя файла.
Создать архив и сжать gzip (создаёт .tar.gz или .tgz):
tar -czvf archive.tar.gz directory-to-archiveПосмотреть содержимое архива:
tar -tvf archive.tarДобавить файл или каталог в существующий tar:
tar -rvf archive.tar path/to/file-or-directoryОбновить файлы в архиве по времени модификации:
tar -uvf archive.tar path/to/directoryРаспаковать архив:
tar -xvf archive.tarПримечание: для сжатия с bzip2 используйте опцию z заменив на j, например tar -cjvf для bzip2.
2. Rar — проприетарный формат
Для работы с rar в Linux обычно используют пакет unrar.
Распаковать архив:
unrar x archive.rarПросмотреть содержимое:
unrar v archive.rarПроверить целостность архива:
unrar t archive.rarЗаметка: установите пакет unrar через менеджер пакетов вашей дистрибуции.
3. Zip — архив и сжатие в одном
zip создаёт архив и одновременно сжимает файлы. Полезен для совместимости с Windows.
Создать рекурсивно архив из каталога:
zip -rv archive.zip directory-to-archiveПояснение: «r» — рекурсивно, «v» — подробный вывод.
Добавить или обновить файлы в архиве:
zip -ru archive.zip path/to/file-or-directoryРаспаковать архив:
unzip archive.zip4. Bzip2 — сильнее сжатие для одиночных файлов
bzip2 даёт лучшее сжатие, чем gzip, но предназначен для сжатия отдельных файлов. Чаще комбинируется с tar.
Сжать файл:
bzip2 fileРаспаковать .bz2:
bunzip2 archive.bz2Если нужно сжать каталог, сначала создайте tar, затем сожмите его:
tar -cvf archive.tar directory-to-archive
bzip2 archive.tar
# получится archive.tar.bz25. 7zip (p7zip) — сильное сжатие и гибкость
p7zip обеспечивает высокую степень сжатия и поддерживает множество форматов.
Создать архив 7z:
7z a archive.7z directory-to-compressПросмотреть содержимое архива:
7z l archive.7zДобавить или обновить файлы:
7z u archive.7z path/to/file-or-directoryРаспаковать архив:
7z x archive.7z6. Ace — устаревший проприетарный формат
Для ace используют утилиту unace.
Распаковать:
unace x archive.aceПросмотреть содержимое:
unace v archive.aceПроверить целостность:
unace t archive.aceБыстрые советы и хорошие практики
- Всегда упаковывайте одну корневую папку. Тогда при распаковке не случится смешения файлов с теми, что уже находятся в каталоге.
- Для пакетов исходных кодов и переносов между серверами используйте tar + gzip или tar + bzip2. Для совместимости с Windows — zip.
- Если нужен максимальный уровень сжатия для архива с большим количеством мелких файлов — попробуйте 7z.
- Создавайте контрольные суммы рядом с архивами: например, sha256sum archive.tar.gz > archive.tar.gz.sha256
Примечание: bzip2 сам по себе не обрабатывает каталоги, поэтому комбинируйте с tar.
Алиас для распаковки
Чтобы упростить распаковку tar-файлов, можно создать алиас:
alias untar='tar -xvf'Чтобы алиас сохранялся между сессиями, добавьте строку в ~/.bashrc или ~/.bash_profile.
Чит‑шит: команды в один взгляд
| Действие | Команда |
|---|---|
| Создать tar | tar -cvf archive.tar dir |
| Создать tar.gz | tar -czvf archive.tar.gz dir |
| Распаковать tar | tar -xvf archive.tar |
| Создать zip | zip -rv archive.zip dir |
| Распаковать zip | unzip archive.zip |
| Сжать bzip2 | bzip2 file |
| Распаковать bzip2 | bunzip2 file.bz2 |
| Создать 7z | 7z a archive.7z dir |
| Распаковать 7z | 7z x archive.7z |
| Распаковать rar | unrar x archive.rar |
| Распаковать ace | unace x archive.ace |
Сравнение форматов — краткая таблица
| Формат | Сжатие | Совместимость | Примечание |
|---|---|---|---|
| tar | нет (контейнер) | Универсально в Unix | Часто используется с gzip/bzip2/xz |
| gzip (tar.gz) | быстрое | Широко | Баланс скорости/сжатия |
| bzip2 (tar.bz2) | лучше gzip, медленнее | Широко | Подходит для архивов с высокой компрессией |
| xz (tar.xz) | высокая степень | Требует поддержки | Хорош для дистрибутивов и бэкапов |
| zip | среднее | Windows и Unix | Упаковывает и сжимает одновременно |
| 7z | очень высокая | Пакет p7zip нужен | Хорош для максимального сжатия |
| rar | хорошее | Проприетарный | Требует unrar для извлечения |
Как выбрать формат — мини‑методология
- Определите цель: перенос между ОС, хранение бэкапа, архив исходников.
- Требуется ли максимальное сжатие или скорость важнее? Если скорость — gzip/zip; если сжатие — 7z/xz.
- Нужна ли совместимость с Windows? Если да — zip или добавляйте инструкции для распаковки.
- Нужна ли проверка целостности? Добавляйте контрольные суммы или используйте форматы с внутренней проверкой.
Ролевые чек‑листы
Системный администратор:
- Автоматизация: используйте скрипты для периодических бэкапов.
- Контроль версий: добавляйте дату и версию в имя архива.
- Проверка: генерируйте sha256sum и проверяйте целостность после копирования.
Разработчик / сборщик пакетов:
- Собирайте артефакты в отдельную папку перед упаковкой.
- Используйте tar.gz для исходников, zip для Windows-бинарников.
- Документируйте команды распаковки в README.
Оператор резервного копирования:
- Шифруйте архивы при необходимости.
- Храните метаданные (список файлов, контрольные суммы).
- Тестируйте восстановление периодически.
Playbook: простая процедура архивации и проверки
- Подготовка: собрать все необходимые файлы в каталоге release/.
- Создать архив tar.gz с датой в имени:
T=$(date +%F)
tar -czvf project-$T.tar.gz release/- Создать контрольную сумму и проверить:
sha256sum project-$T.tar.gz > project-$T.tar.gz.sha256
sha256sum -c project-$T.tar.gz.sha256- Передать архив на удалённый сервер с помощью rsync или scp и проверить контрольную сумму на приёмной стороне.
Когда команды не подойдут — исключения и альтернативы
- Если вам нужно потоковое сжатие/архивирование на лету через сеть, используйте tar в связке с ssh или сетевыми утилитами.
- Для больших виртуальных дисков эффективнее использовать специализированные инструменты бэкапа, поддерживающие инкрементальные копии.
- Если важна совместимость со старым ПО Windows, рекомендован zip; если нужен контроль версий и диффы — храните исходники как git-репозиторий вместо архива.
Безопасность и шифрование
Архивы могут содержать конфиденциальные данные. Рекомендуемые подходы:
- Шифрование файлов перед упаковкой или шифрование архива с помощью gpg:
gpg -c archive.tar.gz- Использовать защищённые каналы передачи (scp, rsync over ssh).
- Ограничивать права доступа к архивам на диске: chmod 600 archive.tar.gz
Короткий глоссарий
- Архив: единый файл, содержащий несколько файлов и каталогов.
- Сжатие: процесс уменьшения размера данных.
- Контейнер: формат, который хранит набор файлов без сжатия (например, tar).
Заключение
Архивы — базовый и мощный инструмент в арсенале пользователя Linux. После изучения основных команд вы сможете быстро упаковывать, сжимать, переносить и восстанавливать данные. Выбирайте формат по задаче: скорость, степень сжатия и совместимость — главные критерии.
Короткое резюме: используйте tar для упаковки, добавляйте gzip/bzip2/xz для сжатия, применяйте 7z если нужен максимум сжатия, и zip для совместимости с Windows.
Если вы используете другие форматы или у вас есть полезные скрипты и практики — поделитесь в комментариях.
Image credit: Yellow Computer Folder With Zipper by Big Stock Photo.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента