Как извлечь tar-архив gzip *.tar.gz в определенный каталог назначения
Для извлечения содержимого из сжатого архивного файла tarball необходимо выполнить несколько операций. Рассмотрим следующий пример, в котором мы сначала создаем небольшой tar-архив gzip с именем gzip-tarball.tar.gz
:
mkdir archive
$ touch archive/linuxconfig
$ tar cvzf gzip-tarball.tar.gz archive/
archive/
archive/linuxconfig
$ ls -l gzip-tarball.tar.gz
-rw-rw-r--. 1 lrendek lrendek 155 May 26 09:22 gzip-tarball.tar.gz
Хотя мы использовали одну команду tar
для сжатия нашего каталога archive/
, факт заключается в том, что с опцией tar
z
мы также вызвали команду gzip
, чтобы помочь со сжатием.
Сначала команда tar
создала архив из нашего каталога archive
, а затем команда gzip
сжала содержимое gzip-tarball.tar.
в gzip-tarball.tar.gz
. В результате команда извлечения tar xzf
сначала распакует архив gzip с использованием gzip
, а затем извлечет содержимое архива из потока с помощью команды tar
. .
Следовательно, чтобы извлечь архив, сжатый gzip, в определенный каталог, нам нужно использовать два инструмента: tar
и gzip или Gunzip
. Простым решением может быть использование канала для перенаправления вывода команды gunzip
в tar
. Допустим, мы хотели бы распаковать наш архив gzip-tarball.tar
в каталог /tmp/dir1
.
$ gunzip -c gzip-tarball.tar.gz | tar x -C /tmp/dir1/
Приведенный выше архив gzip не распакован в каталог /tmp/dir1/
:
$ ls /tmp/dir1/archive/
linuxconfig