gunzip tất cả các tập tin .gz trong thư mục


24

Tôi có một thư mục chứa nhiều .txt.gztệp (trong đó các tên không theo một mẫu cụ thể.)

Cách đơn giản nhất đối với gunziphọ là gì? Tôi muốn giữ nguyên tên gốc của họ, để họ đi từ whatevz.txt.gzđếnwhatevz.txt

Câu trả lời:


42

Làm thế nào về điều này?

$ gunzip *.txt.gz

gunzipsẽ tạo một tệp gunzipped mà không có .gzhậu tố và loại bỏ tệp gốc theo mặc định (xem bên dưới để biết chi tiết). *.txt.gzsẽ được mở rộng bởi shell của bạn cho tất cả các tệp phù hợp.

Bit cuối cùng này có thể khiến bạn gặp rắc rối nếu nó mở rộng ra một danh sách rất dài các tệp. Trong trường hợp đó, hãy thử sử dụng find-execthực hiện công việc cho bạn.


Từ trang người đàn ông gzip(1):

gunzip takes a list of files on its command line and  replaces  each  file
whose  name  ends  with  .gz, -gz, .z, -z, or _z (ignoring case) and which
begins with the correct magic number with an uncompressed file without the
original  extension.

Lưu ý về 'tên gốc'

gzip có thể lưu trữ và khôi phục tên tệp được sử dụng tại thời điểm nén. Ngay cả khi bạn đổi tên tệp nén, bạn có thể ngạc nhiên khi phát hiện ra nó khôi phục lại tên gốc.

Từ trang web gzip:

Theo mặc định, gzip giữ tên tệp gốc và dấu thời gian trong tệp nén. Chúng được sử dụng khi giải nén tập tin với -Ntùy chọn. Điều này hữu ích khi tên tệp nén bị cắt bớt hoặc khi dấu thời gian không được giữ nguyên sau khi truyền tệp.

Và những tên tệp được lưu trữ trong siêu dữ liệu cũng có thể được xem với file:

$ echo "foo" > myfile_orig
$ gzip myfile_orig 
$ mv myfile_orig.gz myfile_new.gz 
$ file myfile_new.gz 
myfile_new.gz: gzip compressed data, was "myfile_orig", last modified: Mon Aug  5 08:46:39 2019, from Unix
$ gunzip myfile_new.gz        # gunzip without -N
$ ls myfile_*
myfile_new

$ rm myfile_*
$ echo "foo" > myfile_orig
$ gzip myfile_orig
$ mv myfile_orig.gz myfile_new.gz 
# gunzip with -N
$ gunzip -N myfile_new.gz     # gunzip with -N
$ ls myfile_*
myfile_orig

0

Nếu bạn muốn giữ .gztệp, bạn có thể sử dụng như sau: $ gunzip -c inputfile.gz >outputfile


0

Sử dụng lệnh này để gunzip (giải nén tệp gz) tất cả các tệp trong thư mục hiện tại và giữ nguyên các tệp gốc:

gunzip -k *.gz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.