Lệnh gzip là một trong những lệnh nén file hữu ích nhất trên Linux. Lệnh này sử dụng thuật toán Lempel-Ziv coding (LZ77) để giảm kích thước file. gzip có thể nén các file chưa được nén và giải nén các file đã nén. Trong bài viết này chúng ta sẽ cùng tìm hiểu chi tiết hơn về lệnh gzip qua các ví dụ cụ thể.
Những điểm chính
Dưới đây là những nội dung chính trong bài viết mà bạn cần nắm để hiểu rõ về lệnh gzip trong Linux và biết cách sử dụng hiệu quả:
- Lệnh gzip trong Linux là gì: Giới thiệu khái quát về lệnh gzip và cú pháp của lệnh, giúp bạn biết cách khai thác toàn bộ các tính năng.
- Các tùy chọn: Bạn được cung cấp 5 tùy chọn cơ bản lệnh cùng các mô tả kèm theo một cách chi tiết giúp bạn biết cách sử dụng lệnh để nén và giải nén file linh hoạt theo nhu cầu.
- Ví dụ về gzip trong Linux: Bạn hướng dẫn sử lệnh một cách cụ thể thông qua 9 ví dụ thực tế được sử dụng thông dụng nhất.
- Vietnix – Nhà cung cấp dịch vụ Hosting, VPS, Server uy tín hàng đầu
Lệnh gzip trong Linux là gì?
Lệnh gzip trên Linux được sử dụng để nén và giải nén file. Việc nén file giúp giảm kích thước mà không làm mất dữ liệu. Lệnh này cũng có thể được dùng để kiểm tra tính toàn vẹn của file nén. Giống như một số lệnh nén khác, gzip sẽ thay thế file gốc trong quá trình nén.
Cú pháp
Lệnh gzip trong Linux có cú pháp khá đơn giản như sau:
gzip [OPTION]... [FILE]...
Trong đó: OPTION nằm trong ngoặc vuông và theo sau là ba dấu chấm, nghĩa là bạn có thể dùng nhiều tùy chọn cùng lúc. Ba dấu chấm sau FILE cũng vậy, bạn có thể chỉ định nhiều file cùng lúc.
Các tùy chọn của lệnh gzip
Lệnh gzip có nhiều tùy chọn. Dưới đây là bảng tóm tắt một số tùy chọn thường được sử dụng nhất.
Tùy chọn | Mô tả |
---|---|
-f | Nén file và xóa file gốc. |
-k | Nén file nhưng không xóa file gốc. |
-r | Nén tất cả các file trong một folder được chỉ định. |
-v | Hiển thị tên file và tỷ lệ phần trăm giảm kích thước sau khi nén. |
-d | Giải nén file đã được nén. |
-L hoặc -V | Hiển thị giấy phép và phiên bản của gzip. |
Lưu ý
- Các tùy chọn trong giao diện dòng lệnh (CLI) của Linux phân biệt chữ hoa chữ thường, vì vậy hãy cẩn thận khi sử dụng.
- Để biết thêm chi tiết về tất cả các tùy chọn của lệnh gzip, bạn có thể sử dụng lệnh: man gzip.
9 ví dụ thực tế về lệnh gzip trong Linux
- Ví dụ 1: Nén file bằng lệnh gzip
- Ví dụ 2: Nén nhiều file cùng lúc bằng lệnh gzip trong Linux
- Ví dụ 3: Nén file mà không xóa file gốc
- Ví dụ 4: Giải nén file bằng lệnh gzip trong Linux
- Ví dụ 5: Nén tất cả file trong một folder cụ thể bằng lệnh gzip
- Ví dụ 6: Giải nén tất cả file trong một folder cụ thể
- Ví dụ 7: Kiểm tra tính toàn vẹn của file nén
- Ví dụ 8: Xem tỷ lệ nén và thông tin của file được chỉ định
- Ví dụ 9: Xem giấy phép và phiên bản của gzip
Ví dụ 1: Nén file bằng lệnh gzip
Để nén file, bạn có thể sử dụng lệnh gzip kèm theo tùy chọn -f. Tùy chọn -f sẽ buộc nén file và xóa file gốc. Trong ví dụ này, chúng ta sẽ nén file có tên file1.txt. Bạn có thể làm theo các bước sau:
Bước 1: Mở Terminal trong Ubuntu.
Bước 2: Gõ lệnh sau và nhấn Enter để liệt kê các file hiện có:
ls
Bước 3: Gõ lệnh sau và nhấn Enter để nén file có tên file1.txt:
gzip -f word_count.sh
Bạn hãy thay file1.txt bằng tên file mà bạn muốn nén.
Bước 4: Chạy lệnh ls một lần nữa để kiểm tra kết quả.
Kết quả: Như bạn thấy trong hình, file đã được nén và file gốc không còn tồn tại.
Ví dụ 2: Nén nhiều file cùng lúc bằng lệnh gzip trong Linux
Trong ví dụ này, chúng ta sẽ sử dụng lệnh gzip kèm tùy chọn -f để nén nhiều file cùng lúc, cụ thể là file1.txt và file2.txt. Tùy chọn -f sẽ buộc nén file và thay thế file gốc.
Bước 1: Mở Terminal trong Ubuntu.
Bước 2: Gõ lệnh sau và nhấn Enter để liệt kê các file chưa nén:
ls
Bước 3: Gõ lệnh sau và nhấn Enter để nén 2 file cùng lúc:
gzip -f leap_year.sh week_check.sh
Bạn hãy thay leap_year.sh và week_check.sh bằng tên các file mà bạn muốn nén.
Bước 4: Chạy lệnh ls một lần nữa để kiểm tra kết quả. Lúc này, bạn sẽ thấy hiển thị các file nén.
Kết quả: Sau khi thực hiện các bước trên, bạn sẽ thấy file1.txt và file2.txt đã được nén thành file1.txt.gz và file2.txt.gz, trong khi các file gốc không còn tồn tại.
Ví dụ 3: Nén file mà không xóa file gốc
Để nén file mà không xóa file gốc, bạn sử dụng tùy chọn -k với lệnh gzip. Các bước thực hiện như sau:
Bước 1: Mở Terminal trong Ubuntu.
Bước 2: Gõ lệnh sau và nhấn Enter để liệt kê các file chưa nén:
ls
Bước 3: Gõ lệnh sau và nhấn Enter để nén 2 file cùng lúc:
gzip -k program1.c program2.c
Bạn hãy thay program1.c và program2.c bằng tên các file mà bạn muốn nén.
Bước 4: Chạy lệnh ls một lần nữa để kiểm tra kết quả.
Kết quả: Bạn sẽ thấy cả file gốc (file1.txt, file2.txt) và file nén (file1.txt.gz, file2.txt.gz) cùng tồn tại.
Ví dụ 4: Giải nén file bằng lệnh gzip trong Linux
Để giải nén các file file1.txt.gz và file2.txt.gz, ta sử dụng lệnh gzip kèm theo tùy chọn -d. để giải nén file và thay thế file nén ban đầu. Bạn thực hiện theo các bước sau:
Bước 1: Mở Terminal trong Ubuntu.
Bước 2: Gõ lệnh sau và nhấn Enter để liệt kê các file đã nén:
ls
Bước 3: Gõ lệnh sau và nhấn Enter để giải nén 2 file cùng lúc:
gzip -d leap_year.sh.gz week_check.sh.gz
Bạn hãy thay leap_year.sh.gz và week_check.sh.gz bằng tên các file nén mà bạn muốn giải nén.
Bước 4: Gõ lệnh ls và nhấn Enter một lần nữa để kiểm tra kết quả.
Kết quả: Như bạn thấy trong kết quả, các file đã được giải nén và file nén ban đầu đã bị xóa.
Ví dụ 5: Nén tất cả file trong một folder cụ thể bằng lệnh gzip
Để nén các file file1.txt và file2.txt trong folder MyFolder, ta sử dụng lệnh gzip kèm theo tùy chọn -r. Các bước thực hiện như sau:
Bước 1: Mở Terminal trong Ubuntu.
Bước 2: Gõ lệnh sau và nhấn Enter để liệt kê các file đã giải nén:
ls
Bước 3: Gõ lệnh sau và nhấn Enter để di chuyển đến folder chứa folder có các file mà bạn muốn nén.
cd ..
Lưu ý
Để nén tất cả file trong một thư mục, bạn cần chạy lệnh từ folder chứa folder đó. Ví dụ, nếu MyFolder nằm trong /home/user/Documents, bạn cần cd đến /home/user/Documents trước khi chạy lệnh gzip.
Bước 4: Gõ lệnh sau và nhấn Enter để nén tất cả file trong folder MyFolder.
gzip -r file\ simple\ code/
Bước 5: Liệt kê lại các file bằng lệnh ls để kiểm tra kết quả.
Kết quả: Như bạn thấy, tất cả các file trong folder MyFolder đã được nén và các file gốc đã bị xóa.
Ví dụ 6: Giải nén tất cả file trong một folder cụ thể
Để giải nén các file file1.txt.gz và file2.txt.gz trong folder MyFolder, bạn có thể sử dụng lệnh gzip với tùy chọn -d (giải nén, tương đương gunzip) và -r (đệ quy, áp dụng cho tất cả file trong thư mục).
Bước 1: Mở Terminal trong Ubuntu.
Bước 2: Gõ lệnh sau và nhấn Enter để liệt kê các file nén:
ls
Bước 3: Gõ lệnh sau và nhấn Enter để di chuyển đến folder chứa folder MyFolder.
cd ..
Lưu ý
Lệnh cd .. sẽ đưa bạn đến folder home vì folder MyFolder được đặt trong folder home. Để nén tất cả các file trong folder mong muốn, bạn cần chắc chắn rằng mình đang ở trong folder chứa folder đó trước khi chạy lệnh.
Bước 4: Gõ lệnh sau và nhấn Enter để giải nén tất cả file trong folder MyFolder.
gzip -dr file\ simple\ code/
Bước 5: Liệt kê lại các file bằng lệnh ls để kiểm tra kết quả.
Kết quả: Bạn sẽ thấy tất cả các file trong folder MyFolder đã được giải nén và các file nén gốc (.gz) đã bị xóa.
Ví dụ 7: Kiểm tra tính toàn vẹn của file nén
Bạn có thể sử dụng lệnh gzip với tùy chọn -t để kiểm tra tính toàn vẹn của file nén. Các bước thực hiện như sau:
Bước 1: Mở Terminal trong Ubuntu.
Bước 2: Gõ lệnh sau và nhấn Enter để liệt kê các file nén hiện có:
ls
Bước 3: Gõ lệnh sau và nhấn Enter để kiểm tra tính toàn vẹn của file1.txt.gz.
gzip -t program1.gz
Lưu ý
File không bị lỗi nên lệnh sẽ không hiển thị gì. Nếu file bị lỗi, lệnh sẽ hiển thị thông báo lỗi.
Bước 4: Gõ lệnh sau và nhấn Enter để kiểm tra tính toàn vẹn của program.tar.gz.
gzip -t program.tar.gz
Kết quả: Hình minh hoạ cho thấy kết quả của lệnh trên là thông báo lỗi “gzip: newzip.txt.gz: unexpected end of file”. Điều này có nghĩa là file newzip.txt.gz bị lỗi, không phải là một file nén hợp lệ, mặc dù nó có đuôi .gz. Trong khi đó, file1.txt.gz không hiển thị lỗi, chứng tỏ đây là một file nén hợp lệ.
Ví dụ 8: Xem tỷ lệ nén và thông tin của file được chỉ định
Để hiển thị tỷ lệ nén và thống kê của một file, bạn sử dụng lệnh gzip với tùy chọn -l. Thông tin này cần cho việc chẩn đoán.
Bước 1: Mở Terminal trong Ubuntu.
Bước 2: Gõ lệnh sau và nhấn Enter để hiển thị tỷ lệ nén và thông tin của check_file_format.gz.
gzip -l check_file_format.sh.gz
Bạn có thể thay check_file_format.gz bằng tên file nén mà bạn muốn kiểm tra.
Kết quả: Lệnh sẽ hiển thị tỷ lệ nén và thông tin chi tiết về file nén.
Giải thích kết quả:
- compressed: Kích thước của file sau khi nén (tính bằng byte). Trong ví dụ này là 54 byte.
- uncompressed: Kích thước của file trước khi nén (tính bằng byte). Trong ví dụ này là 24 byte.
- ratio: Tỷ lệ nén. Giá trị âm -8.3% trong trường hợp này cho thấy file thực tế đã tăng kích thước sau khi nén. Điều này có thể xảy ra với các file nhỏ, vì thông tin bổ sung được thêm vào file nén để quản lý quá trình giải nén.
- uncompressed_name: Tên của file gốc trước khi nén. Trong ví dụ này là file1.txt.
Ví dụ 9: Xem giấy phép và phiên bản của gzip
Bạn có thể dùng lệnh gzip -V hoặc gzip -L để xem thông tin giấy phép và phiên bản của lệnh gzip.
Bước 1: Mở Terminal trong Ubuntu.
Bước 2: Gõ 1 trong 2 lệnh sau và nhấn Enter để hiển thị giấy phép và phiên bản của gzip:
gzip -V
Hoặc
gzip -L
Kết quả: Kết quả hiển thị trên terminal sẽ là giấy phép và phiên bản của gzip.
Vietnix – Nhà cung cấp dịch vụ Hosting, VPS, Server uy tín hàng đầu
Trải qua hơn 12 năm hoạt động trên thị trường, Vietnix đã mang đến các nền tảng công nghệ hiện đại, tiên tiến, được hơn 80.000 khách hàng tin tưởng lựa chọn và đạt chứng nhận ISO 27001, ISO 9001. Trong đó, Vietnix nổi bật với các dịch vụ Hosting, VPS, Server đáp ứng mọi quy mô doanh nghiệp, cung cấp hiệu năng vượt trội và độ bảo mật cao. Hãy trải nghiệm sự khác biệt với Vietnix ngay hôm nay!
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Bài viết đã cung cấp cho bạn những thông tin chi tiết về lệnh gzip trong Linux cũng như cách sử dụng để nén và giải nén file. Hy vọng những kiến thức này sẽ hữu ích cho bạn trong việc quản lý hệ thống Linux và tối ưu hóa hiệu suất lưu trữ dữ liệu của mình! Nếu bạn muốn tìm hiểu thêm về các lệnh khác trong Linux, bạn hãy tham khảo các bài viết dưới đây: