Поведение gunzip по умолчанию заключается в удалении файла .gz после его распаковки.
Как я могу предотвратить удаление файла ??
Если эта функциональность не включена, то есть ли альтернативная программа, которая позволяет это?
Я использую Ubuntu 9.04
используйте следующую команду: gunzip -k
fazineroso 9 лет назад
3
у какого gunzip есть опция -k? Я никого не вижу.
Znik 8 лет назад
0
@Znik, * gzip / gunzip * версии 1.6 и выше [имеет параметр `-k`] (http://git.savannah.gnu.org/cgit/gzip.git/commit/?id=0192f02e26ac9fa0a27ed177263ee3ea73d5e95c).
alexander barakin 8 лет назад
1
Команда gzcatэквивалентна gunzip -cкоторой просто записывает поток вывода stdout. Это оставит сжатый файл без изменений. Так что вы также можете использовать:
gunzip -c x.txt.gz >x.txt
Обратите внимание, что в некоторых системах gzcat также известен как zcatтак: запустите его следующим образом:
zcat x.txt.gz >x.txt
Спасибо за ответ. Взросление с pkunzip в DOS Я нахожу настолько странным, что нет возможности сохранить файл. Особенно с таким инструментом, как gzip, который так широко используется ... просто странно.
Sen 15 лет назад
2
К вашему сведению, у меня на самом деле нет gzcat. Ни моя локальная система, ни система, в которую я был помещен. Итак, я должен использовать gunzip -c
Sen 15 лет назад
4
это, вероятно, просто zcat в вашей системе.
user23307 14 лет назад
23
Дополнительная опция сохранить файл была бы действительно хороша. Например, b (un) zip2 использует похожий синтаксис и позволяет просто добавить `-k`, чтобы сохранить исходный файл.
schnaader 13 лет назад
2
Вы также можете добавить строку alias gzcat = "gunzip -c" в ваш .bashrc
James Kingsbery 12 лет назад
1
@Sen: pkunzip более сопоставим с tar -xzf ; он извлекает несколько файлов из сжатого файла и не удаляет сжатый файл. В системах * NIX понятия «связать несколько файлов вместе» и «сжимать данные» не соотносятся, как с .zip. Это означает, что когда появляются новые системы сжатия, нам не нужно заново изобретать / переопределять код / логику «связать несколько файлов».
retracile 12 лет назад
0
Позвольте мне уточнить @JamesKingsbery, где строка начинается и заканчивается `alias gzcat =" gunzip -c "` ... Конечно, я не против использования `zcat`. Меньше печатать, больше энергосбережения;)
Buttle Butkus 11 лет назад
0
Хотя этот ответ мне помог, я все же хочу наказать парня, который разработал эту команду и решил, что деструктивное поведение должно быть по умолчанию.
donquixote 10 лет назад
0
@schnaader выглядит так, будто gunzip поддерживает опцию --keep начиная с версии 1.6 ...
Jacob 10 лет назад
1
Ах, спасибо, Джейкоб! @paxdiablo, не могли бы вы отредактировать ответ, чтобы он дал пример функции -k? (http://savannah.gnu.org/forum/forum.php?forum_id=7623, параграф «Новые функции»)
schnaader 10 лет назад
0
Эта процедура не работает, когда начало файла повреждено.
Znik 8 лет назад
0
52
Stef
Вы можете использовать -cопцию gunzip, которая записывает вывод в stdout, а затем передает его в файл по вашему выбору:
Кстати, обратите внимание, что на странице руководства, упомянутой выше, указана опция -k, что означает сохранение входных файлов. Возможно, это работает на версии BSD, но не на моей, поэтому решение -c кажется правильным.
14 лет назад
0
31
retracile
Более простое решение - просто использовать gunzip в качестве фильтра:
gunzip < myfile.gz > myfile
Я думаю, что это самый чистый способ, так как `gunzip` никогда не знает, какой файл он получает, все, что он видит, - это поток данных, поэтому не может изменить исходный файл.
Walf 7 лет назад
0
12
Alex
Если это на самом деле тарбол (расширение .tgz или .tar.gz), то вместо перенаправления в файл, как все ответы на данный момент, вы захотите передать его в tar следующим образом:
gunzip -c myfile.tar.gz | tar xvf -
так что вы получите фактическое содержание.
или просто сделайте: tar xzvf myfile.tar.gz
Joakim Elofsson 15 лет назад
7
правда, но только если у вас есть GNU tar. Например, тот, который поставляется с Solaris, не поддерживает опцию z.
Alex 15 лет назад
0
5
mob
Используйте -cопцию, чтобы распаковать файл в стандартный вывод. Это не коснется оригинального файла.
gunzip -c myfile.gz > myfile
3
Nabi K.A.Z.
gzip -dk myfile.gz
ИЛИ ЖЕ
gunzip -k myfile.gz
Комментарии:
-k --keep Keep (don't delete) input files during compression or decompression.
2
Justin Smith
Gnu tar может читать файлы gzip: tar -zxsvf myfile.tar.gzили tar -jxzvf myfile.tar.bz2файлы bzip tar.