Nếu bạn xem qua các thư mục của mình và tìm thấy các tệp có phần mở rộng là .gz, điều đó có nghĩa là các tệp này đã được nén bằng lệnh gzip. Lệnh gzip sử dụng thuật toán nén Lempel-Ziv (ZZ77) để giảm kích thước của các tệp như tài liệu, hình ảnh và bản âm thanh. Sau khi nén tệp bằng gzip, bạn cần giải nén tệp. Đây là cách giải nén tệp được nén bằng lệnh gzip.
Giải nén tệp bằng lệnh gzip
Lệnh gzip cung cấp một phương pháp để giải nén các tệp có phần mở rộng .gz.
Để giải nén tệp, hãy sử dụng dấu trừ d ( -d ) chuyển đổi như sau:
gzip -d myfilename.gz
Tệp được giải nén và phần mở rộng .gz bị xóa.
Giải nén tệp bằng lệnh gunzip
Mặc dù sử dụng lệnh gzip là hợp lệ, nhưng sẽ dễ nhớ hơn là sử dụng gunzip để giải nén tệp, như được minh họa trong ví dụ sau:
gunzip myfilename.gz
Buộc giải nén tệp
Đôi khi lệnh gunzip gặp sự cố khi giải nén tệp. Một lý do phổ biến khiến gunzip từ chối giải nén tệp là tên tệp còn lại sau khi giải nén giống với tên tệp đã tồn tại.
Ví dụ:hãy tưởng tượng bạn có một tệp có tên document1.doc.gz và bạn muốn giải nén nó bằng lệnh gunzip. Hãy tưởng tượng bạn cũng có một tệp có tên document1.doc trong cùng một thư mục. Khi bạn chạy lệnh sau, một thông báo xuất hiện và nói rằng tệp tồn tại. Bạn được nhắc xác nhận hành động.
gunzip document1.doc.gz
Bạn có thể nhập Y để chấp nhận rằng tệp hiện có sẽ bị ghi đè. Tuy nhiên, nếu bạn triển khai gunzip như một phần của tập lệnh, bạn sẽ không muốn hiển thị thông báo cho người dùng vì nó ngăn tập lệnh chạy và yêu cầu đầu vào.
Bạn có thể buộc lệnh gunzip giải nén tệp bằng cú pháp sau:
gunzip -f document1.doc.gz
Thao tác này sẽ ghi đè lên một tệp hiện có cùng tên và nó không nhắc bạn khi làm như vậy. Do đó, bạn nên đảm bảo rằng bạn sử dụng dấu trừ f ( -f ) chuyển đổi cẩn thận.
Cách giữ cả tệp nén và tệp đã giải nén
Theo mặc định, lệnh gunzip giải nén tệp và phần mở rộng sẽ bị xóa. Do đó, một tệp có tên myfile.gz sẽ được gọi là myfile , và nó sẽ được mở rộng đến kích thước đầy đủ.
Khi bạn muốn giải nén tệp nhưng vẫn giữ một bản sao của tệp nén, hãy chạy lệnh sau:
gunzip -k myfile.gz
Bây giờ bạn sẽ còn lại với myfile và myfile.gz .
Hiển thị đầu ra nén
Nếu tệp nén là tệp văn bản, bạn có thể xem văn bản trong đó mà không cần giải nén trước. Để thực hiện việc này, hãy sử dụng lệnh sau:
gunzip -c myfile.gz
Lệnh trên hiển thị nội dung của myfile.gz đến đầu ra của thiết bị đầu cuối.
Hiển thị thông tin về tệp nén
Bạn có thể tìm hiểu thêm thông tin về tệp nén bằng lệnh gunzip như sau:
gunzip -l myfile.gz
Kết quả của lệnh trên hiển thị các giá trị sau:
- Kích thước được nén
- Kích thước không nén
- Tỷ lệ
- Tên tệp không nén
Khía cạnh hữu ích nhất của lệnh này là khi bạn đang xử lý các tệp lớn hoặc ổ đĩa sắp hết dung lượng đĩa.
Hãy tưởng tượng bạn có một ổ đĩa có kích thước 10 gigabyte và tệp nén là 8 gigabyte. Nếu bạn chạy lệnh gunzip một cách mù quáng, thì bạn có thể thấy rằng lệnh không thành công vì kích thước không nén là 15 gigabyte.
Bằng cách chạy lệnh gunzip với dấu trừ l ( -l ), bạn có thể xác minh rằng đĩa bạn đang giải nén tệp có đủ dung lượng. Bạn cũng có thể xem tên tệp sẽ được sử dụng khi tệp được giải nén.
Giải nén nhiều tệp một cách đệ quy
Nếu bạn muốn giải nén tất cả các tệp trong một thư mục và tất cả các tệp trong tất cả các thư mục bên dưới, hãy sử dụng lệnh sau:
gunzip -r foldername
Ví dụ:hãy tưởng tượng bạn có cấu trúc thư mục và tệp sau:
- Tài liệu
- mydoc.gz
- mydoc1.gz
- Tài khoản
- bảng tính1.gz
- bảng tính2.gz
Bạn có thể giải nén tất cả các tệp bằng cách chạy lệnh sau:
gunzip -r Documents
Kiểm tra xem tệp nén có hợp lệ không
Bạn có thể kiểm tra xem tệp đã được nén bằng gzip hay chưa bằng cách chạy lệnh sau:
gunzip -t filename.gz
Nếu tệp không hợp lệ, bạn sẽ nhận được một thông báo. Nếu không, bạn sẽ được trả về đầu vào mà không có thông báo nào.
Điều gì sẽ xảy ra khi bạn giải nén tệp
Theo mặc định, khi bạn chạy lệnh gunzip, bạn sẽ còn lại một tệp được giải nén không có phần mở rộng gz.
Nếu bạn muốn xem thêm thông tin, hãy sử dụng dấu trừ v ( -v ) chuyển sang hiển thị thông tin dài dòng:
gunzip -v filename.gz
Đầu ra sẽ như thế này:
filename.gz: 20% -- replaced with filename
Điều này cho bạn biết tên tệp nén ban đầu, dung lượng nó đã được giải nén và tên tệp cuối cùng.