Вопрос: Как вы запускаете файл и сохраняете файл .gz?


Поведение gunzip по умолчанию - удалить файл .gz после его распаковки.

Как предотвратить его удаление?

Если эта функция не включена, есть ли альтернативная программа, которая позволяет это?

Я использую Ubuntu 9.04


208
2017-09-23 14:45


Источник


используйте следующую команду: gunzip -k - fazineroso
у какого gunzip есть опция -k? Я никого не вижу. - Znik
@Znik, GZIP / Gunzip версия 1.6 и выше имеет возможность -k, - alexander barakin


Ответы:


Ты ищешь:

gzcat x.txt.gz >x.txt

gzcat команда эквивалентна gunzip -c который просто записывает выходной поток в stdout, Это оставит сжатый файл нетронутым. Таким образом, вы также можете использовать:

gunzip -c x.txt.gz >x.txt

Обратите внимание, что на некоторых системах gzcat также известен как zcat поэтому выполните следующим образом:

zcat x.txt.gz >x.txt

208
2017-09-23 14:48



Спасибо за ответ. Растущий с pkunzip в DOS, мне кажется настолько странным, что нет возможности сохранить файл. Особенно с таким инструментом, как gzip, который так широко используется ... просто странно. - Sen
FYI, на самом деле у меня нет gzcat. Ни моя локальная система, ни система, в которую я был отправлен. Итак, я должен использовать gunzip -c - Sen
это, вероятно, просто zcat в вашей системе. - user23307
Дополнительным вариантом для сохранения файла было бы неплохо. Например, b (un) zip2 использует аналогичный синтаксис и позволяет просто добавить -k сохранить исходный файл. - schnaader
Вы также можете добавить псевдоним gzcat = "gunzip -c" в свой .bashrc - James Kingsbery


Вы можете использовать -c вариант gunzip, который записывает вывод в stdout, а затем передает его в файл по вашему выбору:

gunzip -c compressed-file.gz > decompressed-file

Более подробная информация о справочная страница,


52
2017-09-23 14:50



Кстати, обратите внимание, что упомянутая выше справочная страница содержит опцию -k, что означает сохранение входных файлов. Возможно, это работает на версии BSD, но это не мое, поэтому решение -c кажется правильным.


Более простым решением является просто использовать gunzip в качестве фильтра следующим образом:

gunzip < myfile.gz > myfile

30
2017-09-23 17:30



Я думаю, что это самый чистый путь с тех пор gunzip никогда не знает, какой файл он получает, все, что он видит, представляет собой поток данных, поэтому он не может изменить исходный файл. - Walf


Если на самом деле это tarball (расширение .tgz или .tar.gz), то вместо перенаправления на файл, как и все ответы, вы хотите передать его в tar, например:

gunzip -c myfile.tar.gz | tar xvf -

так что вы получите фактическое содержимое.


12
2017-09-23 15:22



или просто выполните: tar xzvf myfile.tar.gz - Joakim Elofsson
true, но только если у вас есть GNU tar. Например, тот, который поставляется с Solaris, не поддерживает параметр z. - Alex


Использовать -c возможность распаковать файл в стандартный вывод. Он не коснется исходного файла.

gunzip -c myfile.gz > myfile

5
2017-09-23 14:52





gzip -dk myfile.gz

ИЛИ

gunzip -k myfile.gz

Комментарии:

   -k --keep    Keep (don't delete) input files during compression or decompression.

3
2017-11-05 12:55





Gnu tar может читать файлы gzip: tar -zxsvf myfile.tar.gz или tar -jxzvf myfile.tar.bz2 для bzipped tar-файлов.


2
2018-01-31 16:14