8.3 Как архивировать и распаковывать архивы по SSH

[tar] - Извлечь (распаковать) TAR Архив
$ tar -с /usr -xvf foo.tar

[tar.gz] - Извлечь и Разархивировать TAR Архив, сжатый с помощью GZIP
$ tar -xvzf foo.tar.gz -C /usr

[tar.bz2] - Извлечь и Разархивировать TAR Архив, сжатый с помощью BZIP2
$ tar -с /usr -xvjf foo.tar.bz2

[zip] Извлечь и Разархивировать ZIP Архив
unzip имя_архива.zip

Описание ключей:

  • -x извлечь файлы из архива
  • -v выводить список обрабатываемых файлов
  • -f указать имя архива или TAR файла
  • -z разархивировать содержимое, сжатое с помощью программы gzip [tar.gz]
  • -j разархивировать содержимое, сжатое с помощью программы bzip2 [tar.bz2]
  • -C /usr - указывает в какую папку извлечь содержимое архива? если не указывать то будет извлечено в текущий каталог

[tar] - Показать содержимое TAR архива

$ tar -tvf foo.tar

[tar.gz] - Показать содержимое TAR архива, сжатого с помощью GZIP
$ tar -ztvf foo.tar.gz

[tar.bz2] - Показать содержимое TAR архива, сжатого с помощью BZIP2
$ tar -jtvf tar.bz2

-t показать содержимое архива

Извлечь Один Файл из TAR Архива

Используйте следующие команды для извлечения одного файла, скажем bar.txt, из архива:

  • $ tar -xvf foo.tar bar.txt
  • $ tar -xzvf foo.tar.gz bar.txt
  • $ tar -xjvf foo.tar.bz2 bar.txt

Также можно указать путь к файлу:

  • $ tar -xvf foo.tar docs/bar.txt
  • $ tar -xzvf foo.tar.gz docs/bar.txt
  • $ tar -xjvf foo.tar.bz2 docs/bar.txt

Извлечь Одну Папку из TAR Архива

Используйте следующие команды для извлечения одной папки, скажем docs, из архива:

  • $ tar -xvf foo.tar docs
  • $ tar -xzvf foo.tar.gz docs
  • $ tar -xjvf foo.tar.bz2 docs

Также можно извлечь какую-либо поддиректорию:

  • $ tar -xvf foo.tar docs/images
  • $ tar -xzvf foo.tar.gz docs/images
  • $ tar -xjvf foo.tar.bz2 docs/images

Запаковать файлы в tar.gz через SSH
tar -zcvf имя_архива архивируемая_папка
например:

tar -zcvf folder.tar.gz folder/

Пояснения

  • c – значит, что создается новый архив;
  • f – посредством этого флага задается имя создаваемого архива;
  • z – архивация будет происходить посредством архиватора gzip;
  • v – в консоль будет выводиться информация о процессе архивации.

Как запаковать файлы в zip через SSH
zip -r имя_архива архивируемая_папка
например:

zip -r logs.zip logs/

Пояснения

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

Извлечь архив GZ (именно в этом формате хранятся архивные логи на серверах Unix) можно командой:

gunzip fize.gz

gunzip удаляет исходный архив. Если нужно сохранить так же и исходный архив, используйте опцию -c с перенаправлением потока в файл:

gunzip -c file.gz > decompressed-file