Как распаковать tar.gz, zip и другие архивы
tar -xzf archive.tar.gzАрхив распакуется в текущую папку. x — распаковать, z — архив сжат gzip, f — дальше имя файла. Хотите видеть имена файлов по ходу — добавьте v: tar -xvzf archive.tar.gz.
В нужную папку (она должна существовать):
mkdir -p ~/restore
tar -xzf archive.tar.gz -C ~/restoreПосмотреть содержимое, ничего не распаковывая:
tar -tzf archive.tar.gzДругие форматы
| Файл | Команда |
|---|---|
.tar.gz, .tgz | tar -xzf файл |
.tar.xz | tar -xJf файл |
.tar.bz2 | tar -xjf файл |
.tar | tar -xf файл |
.gz (один файл, не tar) | gunzip файл.gz |
.xz (один файл) | unxz файл.xz |
.zip | unzip файл.zip или unzip файл.zip -d папка |
.7z | 7z x файл.7z |
Помнить буквы z, J и j не обязательно: при распаковке GNU tar сам узнаёт способ сжатия, и tar -xf файл работает для всех архивов tar.
gunzip и unxz заменяют сжатый файл распакованным, а сам .gz удаляют. Чтобы оставить его, добавьте -k.
Для unzip и 7z может понадобиться установка. В Ubuntu, Debian и Mint: sudo apt install unzip и sudo apt install 7zip (в старых версиях системы — пакет p7zip-full). Если после установки команды 7z нет, попробуйте 7zz x файл.7z.
Подводные камни
Распаковка молча заменяет файлы с теми же именами. Перед распаковкой незнакомого архива посмотрите список (tar -tzf, unzip -l) и распаковывайте в отдельную пустую папку.
- Архив высыпал сотни файлов в текущую папку. Так бывает, если внутри нет общей папки. Поэтому сначала — список, потом распаковка в отдельную папку.
gzip: stdin: not in gzip format— файл не сжат gzip, хотя называется.tar.gz, или вместо архива скачалась страница с ошибкой. Посмотрите, что это на самом деле:file archive.tar.gz. Если тамHTML, скачайте заново (дляcurl— с ключом-L).Cannot open: Permission denied— нет права записи в папку, куда идёт распаковка. Распакуйте в свою домашнюю папку или, для системных папок, черезsudo.- Распаковать один файл из архива — укажите его путь так, как он показан в списке:
tar -xzf archive.tar.gz site/config.php.
Как упаковать папку в архив — в уроке Архивы и сеть: tar, zip, curl, ssh и scp.