Câu hỏi Làm thế nào để bạn gunzip một tập tin và giữ tập tin .gz?


Hành vi mặc định của gunzip là xóa tệp .gz sau khi giải nén.

Làm thế nào để ngăn chặn nó xóa tập tin ??

Nếu chức năng này không được bao gồm thì có chương trình thay thế nào cho phép điều này không?

Tôi đang sử dụng Ubuntu 9.04


209
2017-09-23 14:45


gốc


sử dụng lệnh sau: gunzip -k - fazineroso
gunzip có tùy chọn -k là gì? Tôi không thấy ai cả. - Znik
@Znik, gzip / gunzip phiên bản 1.6 trở lên có tùy chọn -k. - alexander barakin


Các câu trả lời:


Bạn đang tìm:

gzcat x.txt.gz >x.txt

Các gzcat lệnh tương đương với gunzip -c mà chỉ cần viết luồng đầu ra vào stdout. Điều này sẽ để lại tập tin nén bị ảnh hưởng. Vì vậy, bạn cũng có thể sử dụng:

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

Lưu ý rằng trên một số hệ thống gzcat còn được gọi là zcat hãy chạy như thế này thay vào đó:

zcat x.txt.gz >x.txt

210
2017-09-23 14:48



Cảm ơn câu trả lời. Lớn lên với pkunzip trong DOS tôi thấy nó lạ đến nỗi không có tùy chọn để giữ tập tin. Đặc biệt với một công cụ như gzip đang được sử dụng rộng rãi ... thật kỳ lạ. - Sen
FYI, tôi thực sự không có gzcat. Cả hệ thống địa phương của tôi hoặc hệ thống của tôi đều không được đưa vào. Vì vậy, tôi phải sử dụng gunzip -c - Sen
nó có lẽ chỉ là zcat trên hệ thống của bạn. - user23307
Một tùy chọn bổ sung để giữ cho tập tin sẽ được thực sự tốt đẹp. Ví dụ, b (un) zip2 sử dụng cú pháp tương tự và cho phép chỉ cần thêm -k để giữ tập tin gốc. - schnaader
Bạn cũng có thể thêm bí danh dòng gzcat = "gunzip -c" vào tệp .bashrc của bạn - James Kingsbery


Bạn có thể dùng -c tùy chọn của gunzip mà viết đầu ra để stdout, và sau đó ống nó vào tập tin của sự lựa chọn của bạn:

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

Thêm chi tiết về trang thủ công.


52
2017-09-23 14:50



Nhân tiện, lưu ý rằng trang người đàn ông được đề cập ở trên liệt kê một tùy chọn -k, có nghĩa là giữ các tệp đầu vào. Có lẽ điều này làm việc trên phiên bản BSD, nhưng nó không phải trên của tôi, vì vậy giải pháp -c có vẻ là một trong những chính xác.


Một giải pháp đơn giản hơn là chỉ sử dụng gunzip làm bộ lọc như sau:

gunzip < myfile.gz > myfile

30
2017-09-23 17:30



Tôi nghĩ đây là cách sạch nhất kể từ gunzip không bao giờ biết những gì nó nhận được, tất cả những gì nó thấy là một luồng dữ liệu, vì vậy không thể thay đổi tập tin gốc. - Walf


Nếu nó thực sự là một phần mở rộng tarball (.tgz hoặc .tar.gz), sau đó thay vì chuyển hướng đến tệp như tất cả các câu trả lời cho đến nay, bạn sẽ muốn đặt nó vào tar, như sau:

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

để bạn có được nội dung thực tế.


12
2017-09-23 15:22



hoặc chỉ cần làm: tar xzvf myfile.tar.gz - Joakim Elofsson
đúng, nhưng chỉ khi bạn có GNU tar. Ví dụ, cái đi kèm với Solaris không hỗ trợ tùy chọn z. - Alex


Sử dụng -c tùy chọn để giải nén tập tin để stdout. Nó sẽ không chạm vào tập tin gốc.

gunzip -c myfile.gz > myfile

5
2017-09-23 14:52





gzip -dk myfile.gz

HOẶC LÀ

gunzip -k myfile.gz

Bình luận:

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

3
2017-11-05 12:55





Gnu tar có thể đọc các tệp gzip: tar -zxsvf myfile.tar.gz hoặc là tar -jxzvf myfile.tar.bz2 cho các tệp tar bzipped.


2
2018-01-31 16:14