Bir dosyayı nasıl gunzip ve .gz dosyasını saklarsınız?


220

Gunzip'in varsayılan davranışı, sıkıştırmasından sonra .gz dosyasını silmektir.

Dosyayı silmesini nasıl önleyebilirim?

Bu işlevsellik dahil edilmemişse, buna izin veren alternatif bir program var mı?

Ubuntu 9.04 kullanıyorum


3
aşağıdaki komutu kullanın: gunzip -k
fazineroso

gunzip ne -k seçeneği var? Ben kimseyi göremiyorum
Znik

1
@Znik, gzip / gunzip 1.6 ve daha üstü versiyon seçeneklerine sahiptir-k .
aleksandr barakin,

Yanıtlar:


220

Arıyorsun:

gzcat x.txt.gz >x.txt

gzcatKomut eşdeğerdir gunzip -cbasitçe için çıkış akışı yazar hangi stdout. Bu sıkıştırılmış dosyayı el değmemiş bırakacaktır. Yani kullanabilirsiniz:

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

Bazı sistemlerde gzcat’ın aynı şekilde biliniyor olduğuna dikkat edin zcat:

zcat x.txt.gz >x.txt

2
Cevap için teşekkürler. DOS'ta pkunzip ile büyürken dosyayı tutacak bir seçenek olmadığı için çok tuhaf buluyorum. Özellikle GZIP gibi bir araçla çok yaygın bir şekilde kullanılıyor ... sadece garip.
Sen,

4
Bilginize, aslında benim gzcat yok. Ne yerel sistemim ne de benim içine düştüğüm sistem. Bu yüzden gunzip -c
Sen

26
Muhtemelen sisteminizde sadece zcat.
kullanıcı23307,

2
Dosyayı tutmak için ek bir seçenek gerçekten güzel olurdu. Örneğin, b (un) zip2 benzer bir sözdizimi kullanır ve sadece -korijinal dosyayı saklamak için eklemenizi sağlar .
schnaader

1
Ayrıca alias gzcat = "gunzip -c" satırını .bashrc'ınıza ekleyebilirsiniz
James Kingsbery

55

-cÇıkışı stdout'a yazan gunzip seçeneğini kullanabilir ve ardından istediğiniz dosyaya yönlendirebilirsiniz:

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

Manuel sayfada daha fazla detay .


Bu arada, yukarıda belirtilen man sayfasının bir -k seçeneği listelediğini, bunun da girdi dosyalarını sakladığını not edin. Belki bu BSD versiyonunda çalışır, fakat benim değil, bu yüzden -c çözümü doğru gibi görünüyor.

31

Daha basit bir çözüm gunzip'i sadece böyle bir filtre olarak kullanmaktır:

gunzip < myfile.gz > myfile

Bunun en temiz yol olduğunu düşünüyorum, çünkü gunziphangi dosyanın elde edildiğini asla bilemez, tüm gördüğü bir veri akışıdır, bu nedenle orijinal dosyayı değiştiremez.
Walf,

12

Aslında bir tarball (.tgz veya .tar.gz uzantısı) ise, şimdiye kadarki cevapların tümü gibi dosyaya yönlendirmek yerine, şu şekilde gibi tar'a yönlendirmek istersiniz:

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

Böylece asıl içeriği elde edersiniz.


7
veya sadece yapın: tar xzvf myfile.tar.gz
Joakim Elofsson

doğru, ancak yalnızca GNU katran varsa. Örneğin Solaris ile birlikte gelen, z seçeneğini desteklemiyor.
Alex

5

-cDosyayı stdout'a açmak için bu seçeneği kullanın . Orijinal dosyaya dokunmayacak.

gunzip -c myfile.gz > myfile

4
gzip -dk myfile.gz

VEYA

gunzip -k myfile.gz

Yorumlar:

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

2

Gnu tar gzip dosyalarını okuyabilir: tar -zxsvf myfile.tar.gzveya tar -jxzvf myfile.tar.bz2bzipped tar dosyaları için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.