Linux cung cấp một số công cụ dòng lệnh để nén/giải nén tệp. Một trong số đó là Gzip, sử dụng mã hóa Lempel-Ziv (LZ77) cho các hoạt động nén của nó. Trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của gzip, cũng như các tính năng mà nó cung cấp bằng các ví dụ dễ hiểu.
Nhưng trước khi tiếp tục, cần đề cập rằng tất cả các ví dụ/hướng dẫn được đề cập trong hướng dẫn này đều đã được thử nghiệm trên Ubuntu 16.04LTS.
Và đây là cách trang hướng dẫn mô tả công cụ này:
Các ví dụ theo kiểu Hỏi & Đáp sau đây sẽ cung cấp cho bạn ý tưởng hay về cách Gzip hoạt động.
Đây là một ví dụ:
Vì vậy, bạn có thể thấy lệnh đã nén một tệp có tên 'file1' và tạo ra một tệp .gz có cùng tên. Điều đáng chú ý ở đây là công cụ thay thế tệp gốc bằng phiên bản đã nén theo mặc định.
Đây là một ví dụ:
Vì vậy, bạn có thể thấy rằng tất cả các tệp - cho dù trong thư mục chính hay thư mục con - đều đã được nén.
Sau đây là một ví dụ:
Vì vậy, bạn có thể thấy rằng file3.gz đã được giải nén để tạo ra file3, sau đó tệp đã nén đã bị xóa.
Lưu ý: Để giải nén đệ quy, hãy sử dụng tùy chọn -r cùng với tùy chọn -d.
Đây là một ví dụ:
Và đây là ý nghĩa của các trường này:
Bây giờ, nếu muốn, bạn có thể thực thi gzip theo cách không tạo ra bất kỳ thông báo nào như vậy. Bạn có thể thực hiện việc này bằng cách sử dụng tùy chọn dòng lệnh -f.
gzip -f [file-name]
Lưu ý rằng bạn có thể sử dụng bất kỳ số nào từ 1 đến 9, trong đó -1 biểu thị tốc độ nén nhanh nhất trong khi -9 biểu thị tốc độ nén chậm nhất (nhưng tốt nhất). Sau đây là nội dung trang hướng dẫn về điều này:
Nhưng trước khi tiếp tục, cần đề cập rằng tất cả các ví dụ/hướng dẫn được đề cập trong hướng dẫn này đều đã được thử nghiệm trên Ubuntu 16.04LTS.
Lệnh Gzip của Linux
Như bạn đã hiểu, công cụ dòng lệnh Gzip được sử dụng để nén hoặc mở rộng tệp. Sau đây là cú pháp của lệnh này:
Mã:
gzip [ -acdfhklLnNrtvV19 ] [--rsyncable] [-S hậu tố] [ name ... ]
Mã:
Gzip giảm kích thước của các tệp được đặt tên bằng mã hóa Lempel-Ziv (LZ77). Bất cứ khi nào có thể, mỗi
tệp được thay thế bằng một tệp có phần mở rộng .gz, trong khi vẫn giữ nguyên chế độ sở hữu, quyền truy cập và
thời gian sửa đổi. (Phần mở rộng mặc định là -gz đối với VMS, z đối với MSDOS, OS/2 FAT,
Windows NT FAT và Atari.)
Câu hỏi 1. Làm thế nào để nén tệp bằng Gzip?
Rất dễ - tất cả những gì bạn phải làm là truyền tên tệp làm đối số cho lệnh gzip theo cách sau:
Mã:
gzip [tên-tệp]
Vì vậy, bạn có thể thấy lệnh đã nén một tệp có tên 'file1' và tạo ra một tệp .gz có cùng tên. Điều đáng chú ý ở đây là công cụ thay thế tệp gốc bằng phiên bản đã nén theo mặc định.
Câu hỏi 2. Làm thế nào để buộc gzip không xóa tệp gốc?
Như đã thảo luận trong phần Hỏi & Đáp trước, hành vi mặc định của gzip là xóa tệp gốc. Tuy nhiên, bạn có thể buộc công cụ không thực hiện điều đó bằng cách sử dụng tùy chọn dòng lệnh -k.
Mã:
gzip -k [file-name]
Câu hỏi 3. Làm thế nào để nén đệ quy các tệp bằng gzip?
Để nén đệ quy các tệp, hãy sử dụng tùy chọn dòng lệnh -r. Tùy chọn này, như tên gọi của nó, sẽ nén các tệp trong thư mục chính cũng như tất cả các thư mục con.
Mã:
gzip -r *
Vì vậy, bạn có thể thấy rằng tất cả các tệp - cho dù trong thư mục chính hay thư mục con - đều đã được nén.
Câu hỏi 4. Làm thế nào để giải nén tệp bằng gzip?
Để giải nén tệp, hãy sử dụng tùy chọn dòng lệnh -d.
Mã:
gzip -d [tên-tệp-đã-nén]
Vì vậy, bạn có thể thấy rằng file3.gz đã được giải nén để tạo ra file3, sau đó tệp đã nén đã bị xóa.
Lưu ý: Để giải nén đệ quy, hãy sử dụng tùy chọn -r cùng với tùy chọn -d.
Câu hỏi 5. Làm thế nào để tạo danh sách gzip chi tiết liên quan đến tệp nén?
Bạn có thể thực hiện việc này bằng cách sử dụng tùy chọn dòng lệnh -l.
Mã:
gzip -l [tên-tệp-nén]
Và đây là ý nghĩa của các trường này:
Câu hỏi 6. Làm thế nào để buộc gzip thực hiện các hoạt động nén/giải nén trong một số trường hợp?
Giả sử bạn đã tạo tệp .gz, đồng thời đảm bảo tệp gốc không bị xóa (sử dụng tùy chọn dòng lệnh -k). Bây giờ, nếu bạn lại thử tạo cùng một tệp .gz (vì bất kỳ lý do gì), lệnh gzip sẽ không cho phép bạn làm như vậy hoặc ít nhất là nó sẽ yêu cầu quyền của bạn.Bây giờ, nếu muốn, bạn có thể thực thi gzip theo cách không tạo ra bất kỳ thông báo nào như vậy. Bạn có thể thực hiện việc này bằng cách sử dụng tùy chọn dòng lệnh -f.
gzip -f [file-name]
Câu hỏi 7. Làm thế nào để điều chỉnh tốc độ nén?
Lệnh Gzip cũng cho phép bạn điều chỉnh tốc độ nén. Bạn có thể thực hiện việc này bằng cách chỉ định dấu gạch nối (-) theo sau là một số làm đối số dòng lệnh cho công cụ. Ví dụ:
Mã:
gzip -5 [file-name]