13 ví dụ thực tế về việc sử dụng Gzip command trong Linux

Gzip command sử dụng thuật toán deflate, đây là một phương pháp nén dữ liệu không mất mát tạo ra kích thước tệp nhỏ hơn để làm cho việc truyền dữ liệu nhanh hơn so với các công cụ nén khác. Nén là một thao tác phổ biến được thực hiện bởi người dùng để tiết kiệm dung lượng đĩa cũng như giảm thời gian và băng thông khi chuyển dữ liệu lớn qua mạng bằng công cụ gzip.

Gzip viết tắt của GNU zip và nó là một công cụ nén và giải nén phổ biến. Một trong những lý do chính cho sự phổ biến của nó là tỷ lệ nén cao và tốc độ, điều này đồng nghĩa với việc dữ liệu nén vẫn giống như trước khi giải nén.

Trong hướng dẫn này, chúng ta sẽ thảo luận về việc sử dụng lệnh gzip với ví dụ trên Linux.

Cú pháp gzip Command

Tương tự như bất kỳ lệnh Linux nào khác, cú pháp lệnh gzip được chia thành hai phần TÙY CHỌNTỆP TIN.

$ gzip [OPTIONS]... [FILES]...

Trong cú pháp trên, TÙY CHỌN được sử dụng để thay đổi hành vi của lệnh trong khi TỆP TIN đại diện cho các tệp đầu vào.

1. Tạo tệp Gzip trong Linux

Một trong những cách sử dụng phổ biến của lệnh gzip là nén một tệp lớn. Thường thấy rằng, các tệp ISO lớn hoặc các bản gói tar được nén để tiết kiệm dung lượng đĩa.

Để nén một tệp duy nhất, chúng ta chỉ cần chuyển tên tệp cho lệnh gzip. Để hiểu điều này, hãy sử dụng lệnh sau để nén tệp ISO:

$ gzip alma-linux.iso

Bây giờ, hãy sử dụng lệnh ls để xác minh rằng tệp đã được nén:

$ ls -l
Create Gzip File in Linux
Tạo tệp Gzip trong Linux

Trong đầu ra trên, chúng ta có thể nhìn thấy tệp nén mới có tên alma-linux.iso.gz. Chúng ta cũng có thể thấy rằng, mặc định, lệnh gzip thêm phần mở rộng .gz cho một tệp nén.

2. Tạo Gzip và giữ file gốc

Trong ví dụ trước đó, chúng ta đã thấy cách dễ dàng để nén một tệp. Tuy nhiên, nếu nhìn kỹ thì chúng ta có thể nhận thấy rằng lệnh gzip xóa tệp gốc sau khi nén.

Tuy nhiên, đôi khi chúng ta muốn giữ lại tệp gốc cũng. Trong những trường hợp như vậy, chúng ta có thể sử dụng tùy chọn -k như dưới đây.

$ gzip -k alma-linux.iso
$ ls -l
Gzip Keep Original File
Gzip Giữ tập tin gốc

Trong đầu ra trên, chúng ta có thể thấy rằng tệp gốc vẫn nguyên vẹn ngay cả sau khi nén.

3. Xem nội dung của tệp .gz

Để xem nội dung của một tệp nén .gz, sử dụng lệnh zcat - cho phép bạn xem nội dung của tệp nén mà không cần giải nén.

Để hiểu điều này, trước tiên, tạo một tệp văn bản đơn giản bằng toán tử chuyển hướng:

$ echo "zcat example from tecmint.com" > demo
$ gzip demo
$ ls -l
$ zcat demo
View Gzip Contents
Xem nội dung Gzip

Trong đầu ra trên, chúng ta có thể thấy rằng zcat hiển thị nội dung của tệp nén mà không cần giải nén.

4. Xem thông tin của tệp .gz

Đôi khi, chúng ta muốn hiển thị thêm thông tin về tệp nén. Trong trường hợp như vậy, chúng ta có thể sử dụng tùy chọn -l để liệt kê các trường sau:

  • kích thước nén - đại diện cho kích thước của tệp nén theo byte.
  • kích thước đã giải nén - đại diện cho kích thước của tệp đã giải nén theo byte.
  • tỷ lệ - đại diện cho tỷ lệ nén.
  • tên đã giải nén - đại diện cho tên của tệp đã giải nén.

Để hiểu điều này, hãy thực hiện lệnh sau:

$ gzip -l alma-linux.iso.gz
View Gzip File Info
Xem thông tin tệp Gzip

5. Ghi đè tệp Gzip mà không cần xác nhận

Mặc định, lệnh gzip hoạt động theo cách tương tác nếu tệp nén với cùng tên đã tồn tại. Để hiểu hành vi mặc định này, hãy thực hiện cùng một lệnh từ ví dụ trước:

$ gzip -k alma-linux.iso
Gzip File Overwrite Confirmation
Tệp ghi đè lực lượng Gzip

Ở đây, chúng ta có thể thấy rằng lệnh gzip đợi đầu vào của người dùng. Bây giờ, chúng ta có thể sử dụng 'y' để ghi đè tệp hoặc 'n' để hủy thao tác.

Hoạt động tương tác này là an toàn và tránh ghi đè tệp theo lỗi. Tuy nhiên, điều này không phù hợp mọi lúc. Ví dụ, nếu chúng ta đang thực thi lệnh gzip từ script thì script sẽ chờ vô hạn cho đầu vào của người dùng. Trong những trường hợp như vậy, chúng ta có thể sử dụng tùy chọn -f để ghi đè tệp một cách bắt buộc.

Bây giờ, hãy thực hiện cùng một lệnh với tùy chọn -f:

$ gzip -f -k alma-linux.iso
Gzip Force Overwrite File
Tạo nhiều tệp Gzip trong Linux

Ở đây, chúng ta có thể thấy hiện tại lệnh gzip hoạt động theo một cách không tương tác.

6. Nén nhiều file bằng Gzip

Cho đến nay, chúng ta đã thấy cách nén một tệp duy nhất. Một cách tương tự, chúng ta có thể sử dụng lệnh gzip để nén nhiều tệp cùng một lúc.

Vì vậy, trước tiên, hãy tạo nhiều bản sao của tệp bằng lệnh cp sau:

$ cp alma-linux.iso alma-linux-1.iso 
$ cp alma-linux.iso alma-linux-2.iso 
$ cp alma-linux.iso alma-linux-3.iso 

Tiếp theo, hãy nén ba tệp bằng lệnh sau:

$ gzip alma-linux-1.iso alma-linux-2.iso alma-linux-3.iso
$ ls -l
Create Multiple Gzip Files in Linux
Tạo nhiều tệp Gzip trong Linux

7. Gzip tất cả các file trong một thư mục

Trong ví dụ trước đó, chúng ta đã thấy cách nén nhiều tệp. Một cách tương tự, chúng ta cũng có thể nén tất cả các tệp từ một thư mục.

Để hiểu điều này, trước hết hãy tạo một thư mục mới và thêm một số tệp vào nó:

$ mkdir dir-1
$ touch dir-1/file-1.txt dir-1/file-2.txt dir-1/file-3.txt

Bây giờ, hãy sử dụng tùy chọn -r để nén tất cả các tệp từ thư mục dir-1:

$ gzip -r dir-1/
$ ls -l dir-1/
Compress All Files in a Directory
Nén tất cả các tệp trong một thư mục

Trong ví dụ trên, tùy chọn -r đi qua thư mục theo cách đệ quy.

8. Giải nén tệp Gzip trong Linux

Lệnh gzip cho phép chúng ta giải nén tệp bằng tùy chọn -d như dưới đây.

$ gzip -d alma-linux.iso.gz
$ ls -l
Unzip Gzip File in Linux
Giải nén tệp Gzip trong Linux

9. Nén file Tar thành Gzip

Trong hai ví dụ trước đó, chúng ta đã thấy cách nén nhiều tệp bằng một lệnh duy nhất. Tuy nhiên, chúng ta cũng có thể nhận thấy rằng lệnh gzip không nén các tệp này thành một tệp duy nhất. Trong những trường hợp như vậy, trước tiên, chúng ta có thể tạo một gói tar và sau đó nén nó bằng lệnh gzip.

Vì vậy, trước tiên, hãy tạo một gói tar với nhiều tệp bên trong:

$ tar cvf sample.tar alma-linux-1.iso alma-linux-2.iso
Create Tar File in Linux
Tạo tệp Tar trong Linux

Bây giờ, hãy nén bundle tar này bằng lệnh sau:

$ gzip sample.tar
$ ls -l
Compress Tar File into Gzip
Nén tệp Tar vào Gzip

10. Tăng tốc độ nén gzip

Cho đến nay, chúng ta đã sử dụng các tệp rất nhỏ để minh họa việc sử dụng lệnh gzip. Tuy nhiên, trong các tình huống thực tế, dữ liệu cần nén có thể rất lớn.

Trong những trường hợp như vậy, chúng ta có thể sử dụng tùy chọn --fast để giảm thời gian nén.

$ gzip --fast alma-linux.iso

Quan trọng nhất, tùy chọn --fast ưu tiên tốc độ nén hơn tỷ lệ nén.

11. Tăng tốc tỷ lệ nén Gzip

Một cách tương tự, chúng ta có thể sử dụng tùy chọn --best để cải thiện tỷ lệ nén. Để hiểu điều này, hãy thực hiện lệnh sau đây:

$ gzip --best alma-linux.iso

Ở đây, chúng ta nên lưu ý rằng tùy chọn --best ưu tiên tỷ lệ nén hơn tốc độ.

12. Đặt mức nén Gzip

Chúng ta có thể sử dụng một đối số số nguyên với lệnh gzip để điều chỉnh tốc độ nén. Giá trị hợp lệ trong phạm vi từ 1 đến 9. Giá trị 1 đại diện cho nén nhanh nhất trong khi giá trị 9 đại diện cho nén chậm nhất.

Ví dụ, lệnh sau sử dụng đối số 2 để cải thiện tốc độ nén:

$ gzip -2 alma-linux.iso 

Quan trọng nhất, cấp độ nén mặc định trong gzip là -6. Nó ưu tiên nén cao với tốc độ.

13. Thay đổi hậu tố mở rộng tệp Gzip

Mặc định, lệnh gzip sử dụng hậu tố .gz sau khi nén tệp. Tuy nhiên, chúng ta có thể ghi đè lên hành vi mặc định này bằng cách sử dụng tùy chọn --suffix.

Ví dụ, chúng ta có thể sử dụng lệnh dưới đây để sử dụng gnuzip làm hậu tố:

$ gzip --suffix .gnuzip alma-linux.iso
$ ls -l
Change Gzip File Extension
Thay đổi phần mở rộng tệp Gzip

Trong ví dụ trên, chúng ta có thể thấy tệp được nén có phần mở rộng .gnuzip.

Trong hướng dẫn thực tế này, chúng ta đã thảo luận về một số ví dụ phổ biến của gzip command trên Linux để nén và giải nén tệp nhanh hơn.