Подтвердить что ты не робот

Декомпрессировать файл gzip в определенный каталог

Что такое gzip-эквивалент следующей команды:

tar xvzf /usr/local/file/file/file.tar.gz -C /usr/local/extract_here

Я пытаюсь

gzip -d /usr/local/file/file/file.tar.gz -C /usr/local/extract_here

но это не сработает, как мне это сделать с помощью gzip?

4b9b3361

Ответ 1

Учитывая тот факт, что у вас есть файл .tar.gz, первый способ, который вы пробовали, с опцией -C, будет работать нормально:

tar xvzf /dir/to/file.tar.gz -C /dir/to/output/

tar вызывает gzip для распаковки, а затем извлекает файлы из потока tar. gzip может только распаковываться, поэтому gunzip file.tar.gz просто уйдет с распакованным file.tar, после чего вам понадобится tar xvf file.tar. Опция z tar - это просто ярлык для выполнения декомпрессии с помощью gzip вместе с извлечением файлов.

Если вы хотите просто распаковать файл .gz(в отличие от извлечения файла .tar.gz) в другой каталог, просто проведите туда. Например. gzip -dc < file.gz > /somewhere/file.

Ответ 2

Чтобы сохранить файл .tar без сжатия GZIP, я использую такую ​​строку с хорошими результатами:

cat  file_to_uncompress.tar.gz | gzip -d > /destination_directory/packet_uncompressed.tar

Это полезная и интуитивная форма управления пакетами в некоторых ситуациях.

Ответ 3

cd /mydir_with_gz_files
for i in *gz
do
gzip -dkc < $i > /my_destination_dir/${i%%.gz}
done

Этот синтаксис предназначен для извлечения нескольких файлов *.gz, содержащихся в /mydir_with_gz_files, в другой каталог.

1) Здесь используется опция -k, потому что иначе gzip НЕ сохранит сам архив. Хорошо помнить!

2) Я также хочу подчеркнуть то, что кажется очевидным для тех, кто дает правильный ответ, но не был так для меня и автора вопроса: gzip НЕ будет извлекать файлы в другую директорию, но будет ожидать, что полученный несжатый файл NAME также указывается.

Это достигается здесь с помощью $i > ${i%%.gz} bash замены параметров, которая выдает имя типа "file.gz" своего ".gz". С другими оболочками синтаксис будет отличаться (если вообще возможно).