Перейти к содержимому

Архивы: tar, gz и zip

Как распаковать tar.gz, tar.xz и zip, упаковать папку, заглянуть в архив без распаковки и исключить лишнее. Что делать, если программу скачали в tar.gz.

Содержание

tar собирает файлы и папки в один файл, а сжимает его отдельная программа — отсюда двойные расширения: .tar.gz (gzip), .tar.xz (xz), .tar.zst (zstd), .tar.bz2 (bzip2). Распаковывать их можно одной командой: tar сам узнаёт, чем сжат архив.

Распаковать

tar -xf archive.tar.gz
tar -xf archive.tar.gz -C /var/www/site    # в другую папку — она должна уже быть

x — распаковать, f — файл архива, его имя пишется сразу после f. Добавьте v, чтобы видеть список файлов: tar -xvf. В старых инструкциях пишут tar -xzf — так тоже работает, просто z при распаковке не обязателен.

Достать один файл: tar -xf archive.tar.gz папка/файл.txt — путь такой, как внутри архива.

Если распаковывать через sudo, у файлов будут те же владельцы и права, что в архиве. Без sudo все файлы достанутся вам.

Посмотреть, что внутри

tar -tf archive.tar.gz | less

Полезно перед распаковкой: аккуратный архив кладёт всё в одну папку, а неаккуратный высыпает сотни файлов прямо в текущую.

Упаковать

tar -czf site.tar.gz -C /var/www example.ru

c — создать архив, z — сжать gzip. -C /var/www — перейти в эту папку перед упаковкой, чтобы внутри архива был путь example.ru/…, а не var/www/example.ru/….

КлючСжатиеРасширение
-zgzip — быстро, понимают все.tar.gz, .tgz
--zstdzstd — быстрее gzip и сжимает лучше.tar.zst
-Jxz — сжимает сильнее всех, но медленно.tar.xz
-jbzip2 — встречается в старых архивах.tar.bz2

Исключить лишнее — кэш, журналы:

tar -czf site.tar.gz --exclude='example.ru/cache' --exclude='*.log' -C /var/www example.ru

zip

Программы для zip в облачных образах обычно не установлены:

sudo apt install zip unzip    # Ubuntu, Debian
sudo dnf install zip unzip    # AlmaLinux
unzip -l archive.zip              # что внутри
unzip archive.zip -d folder        # распаковать в папку
zip -r site.zip example.ru         # упаковать папку

Если в архиве из Windows вместо русских имён файлов кракозябры, в Ubuntu и Debian укажите кодировку: unzip -O cp866 archive.zip.

Программу скачали в tar.gz — как установить?

Сначала поищите её в пакетах системы: apt search имя или dnf search имя. Программа из пакетов обновляется вместе с системой, а скачанную архивом обновлять придётся самому.

Если пакета нет, распакуйте архив и загляните внутрь. Обычно там есть README или INSTALL с инструкцией. Дальше два варианта:

  • Готовая программа — один исполняемый файл. Положите его в /usr/local/bin и дайте право на запуск: sudo install -m 755 программа /usr/local/bin/.
  • Исходный код — есть файл configure или Makefile. Его собирают командами ./configure, make и sudo make install. Для сборки нужен компилятор: sudo apt install build-essential или sudo dnf groupinstall "Development Tools".

Не нашли ответ? Напишите в поддержку — подскажем.