Bagaimana Anda mem-gunzip file dan menyimpan file .gz?


219

Perilaku default gunzip adalah menghapus file .gz setelah di-decompress.

Bagaimana saya mencegahnya menghapus file ??

Jika fungsi ini tidak termasuk maka apakah ada program alternatif yang memungkinkan ini?

Saya menggunakan Ubuntu 9.04


3
gunakan perintah berikut: gunzip -k
fazineroso

apa gunzip memiliki opsi -k? Saya tidak melihat siapa pun.
Znik

1
@Znik, gzip / gunzip versi 1.6 dan lebih tinggi memiliki opsi-k .
aleksandr barakin

Jawaban:


220

Kamu sedang mencari:

gzcat x.txt.gz >x.txt

The gzcatperintah setara dengan gunzip -cyang hanya menulis output stream untuk stdout. Ini akan membuat file terkompresi tidak tersentuh. Jadi, Anda juga dapat menggunakan:

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

Perhatikan bahwa pada beberapa sistem, gzcat juga dikenal sebagai zcatrun seperti ini:

zcat x.txt.gz >x.txt

2
Terima kasih atas jawabannya. Tumbuh dengan pkunzip di DOS saya merasa sangat aneh bahwa tidak ada pilihan untuk menyimpan file. Terutama dengan alat seperti gzip yang begitu banyak digunakan ... hanya aneh.
Sen

4
FYI, saya sebenarnya tidak punya gzcat. Baik sistem lokal saya atau sistem saya ssh'ed ke dalam. Jadi, saya harus menggunakan gunzip -c
Sen

25
itu mungkin hanya zcat di sistem Anda.
user23307

2
Opsi tambahan untuk menyimpan file tentu saja menyenangkan. Sebagai contoh, b (un) zip2 menggunakan sintaksis yang sama dan memungkinkan untuk hanya menambahkan -kuntuk menyimpan file asli.
schnaader

1
Anda juga dapat menambahkan baris alias gzcat = "gunzip -c" ke .bashrc Anda
James Kingsbery

55

Anda dapat menggunakan -copsi gunzip yang menulis output ke stdout, dan kemudian mengirimkannya ke file pilihan Anda:

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

Lebih detail di halaman manual .


By the way, perhatikan bahwa halaman manual yang disebutkan di atas mencantumkan opsi -k, yang berarti menyimpan file input. Mungkin ini bekerja pada versi BSD, tetapi tidak pada saya, jadi solusi -c tampaknya menjadi yang benar.

31

Solusi yang lebih sederhana adalah dengan menggunakan gunzip sebagai filter seperti ini:

gunzip < myfile.gz > myfile

Saya pikir ini adalah cara terbersih karena gunziptidak pernah tahu file apa yang didapatnya, yang dilihatnya adalah aliran data, jadi tidak mungkin mengubah file asli.
Walf

12

Jika itu sebenarnya tarball (ekstensi .tgz atau .tar.gz), maka alih-alih mengarahkan ulang ke file seperti semua jawaban sejauh ini, Anda ingin mengirimkannya ke tar, seperti:

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

sehingga Anda mendapatkan konten yang sebenarnya.


7
atau lakukan saja: tar xzvf myfile.tar.gz
Joakim Elofsson

benar, tetapi hanya jika Anda memiliki GNU tar. Yang datang dengan Solaris, misalnya, tidak mendukung opsi z.
Alex

5

Gunakan -copsi untuk membuka kompresi file ke stdout. Itu tidak akan menyentuh file asli.

gunzip -c myfile.gz > myfile

4
gzip -dk myfile.gz

ATAU

gunzip -k myfile.gz

Komentar:

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

2

Gnu tar dapat membaca file gzip: tar -zxsvf myfile.tar.gzatau tar -jxzvf myfile.tar.bz2untuk file tar bzipped.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.