Cách sử dụng lệnh gzip trên Linux
Trong bài này chúng ta sẽ tìm hiểu cách sử dụng lệnh gzip trên Linux, đây là lệnh dùng để nén dữ liệu cực kì hữu ích, giúp giảm dung lượng lưu trữ trên ổ cứng.
Gzip là một trong những thuật toán nén file phổ biến nhất, nó cho phép bạn giảm kích thước của file và giữ nguyên thông tin về dữ liệu, quyền sở hữu và timestamp của file gốc. Phần đuôi mở rộng của loại file này là .gz
, bạn cũng có thể sử dụng lệnh gzip để giải nén sau khi nén nó.
1. Cú pháp lệnh gzip trong Linux
Dưới đây là cú pháp sử dụng lệnh gzip để nén file.
gzip [OPTION]... [FILE]...
Trong đó OPTION là những tùy chọn mà chúng ta sẽ học ở phía dưới, còn FILE chính là đường dẫn đến file bạn cần nén.
Bài viết này được đăng tại [free tuts .net]
Gzip chỉ nén các file đơn lẻ và tạo ra một file nén khác có phần đuôi mở rộng là .gz
hoặc .z
.
Nếu bạn muốn nén nhiều file hoặc nhiều thư mục bằng gzip thì phải tạo một kho lưu trữ Tar chứa những file đó, sau đó nén tập tin .tar
bằng gzip. Vì vậy, có những lúc bạn thấy file .tar.gz
chính là do lệnh gzip đã nén một file .tar
.
Gzip thường được sử dụng để nén các file văn bản, file lưu trữ Tar. Không sử dụng Gzip để nén hình ảnh, âm thanh, tài liệu PDF và các file nhị phân khác vì bản chất chúng đã được nén.
2. Nén file với lệnh gzip trong Linux
Để nén một file thì hãy gọi lệnh gzip và theo sau là tên của file cần nén đó:
gzip filename
Gzip sẽ tạo ra một file tên là filename.gz
và xóa đi file gốc đó.
Theo mặc định thì lệnh gzip sẽ giữ nguyên thông tin về timestamp của file, mode, quyền sở hữu và tên của file gốc trong file nén.
Nếu bạn muốn sau khi nén và vẫn giữ nguyên file gốc thì hãy sử dụng tùy chọn -k
.
gzip -k filename
Một cách khác để giữ file gốc là sử dụng tùy chọn -c
, yêu cầu gzip chuyển hướng đầu ra là một file mới .gz
.
gzip -c filename > filename.gz
Để xem thông tin chi tiết quá trình xử lý thì hãy sử dụng tùy chọn -v
.
gzip -v filename
Kết quả như sau:
filename: 7.5% -- replaced with filename.gz
3. Nén nhiều file với lệnh gzip trong Linux
Bạn cũng có thể truyền vào nhiều file được ngăn cách nhau bởi khoảng trắng vào đằng sau lệnh gzip. Đây chính là cách viết tắt, thay vì viết mỗi file với mỗi lệnh gzip thì ta viết chung luôn.
Ví dụ: Nén 3 file dưới đây thành 3 file nén gzip mới.
gzip file1 file2 file3
Lệnh này sẽ tạo ra 3 file file1.gz
, file2.gz
và file3.gz
. Đồng thời nó cũng xóa luôn 3 file gốc.
Nếu bạn muốn nén tất cả các file trong một thư mục thì sử dụng tùy chọn -r
nhé.
gzip -r directory
gzip sẽ sử dụng thuật toán duyệt đệ quy để tìm tất cả các file và tạo file nén cho chúng.
4. Thay đổi mức nén của lệnh gzip
Gzip cho phép bạn chọn mức nén đối trong khoảng từ 1 đến 9.
- -1 (--fast) là tốc độ nén nhanh nhất và tỉ lệ nén dung lượng tối thiểu nhất.
- -9 (-best-) là tốc độ nén chậm nhất và tỉ lệ nén dung lượng tốt nhất.
- Mặc định thì mức nén là -6.
Ví dụ dưới đây mình chọn mức nén là 9.
gzip -9 filename
Lưu ý rằng khi bạn chạy thuật toán nén gzip thì CPU hoạt động rất cao, vì vậy nếu chạy trên VPS yếu thì nguy cơ CPU quá tải là điều có thể xảy ra.
5. Dùng gzip để giải nén file trong Linux
Sau khi sử dụng gzip để nén file thì bạn hoàn toàn có thể sử dụng nó để giải nén, bởi chúng hiểu thuật tuán của nhau.
Để giải nén thì ta sử dụng tùy chọn -d.
gzip -d filename.gz
Có một lệnh khác cũng được dùng để giải nén file gzip đó là lệnh gunzip. Thực chất thì lệnh gunzip là một bí danh của lệnh gzip -d.
gunzip filename.gz
Khi bạn giải nén thì file nén sau khi được giải sẽ bị xóa mất. Nếu bạn muốn giữ lại file đó thì thêm tùy chọn -k nhé.
gzip -dk filename.gz
Nếu muốn giải nén nhiều file cùng lúc thì đặt chúng cách nhau bởi khoảng trắng.
gzip -d file1.gz file2.gz file3.gz
Để giải nén tất cả các file nén gzip nằm trong một thư mục nào đó thì sử dụng lệnh sau:
gzip -dr directory
6. Xem nội dung của file nén gzip
Sau khi nén file xong nếu bạn muốn xem thông tin của file đó thì hãy sử dụng tùy chọn -l
.
gzip -l filename
Kết quả sẽ bao gồm tên file không nén, kích thước được nén, kích thước không được nén, tỷ lệ nén:
compressed uncompressed ratio uncompressed_name 130 107 7.5% filename
Để xem thêm thông tin thì hãy sử dụng tùy chọn -v.
gzip -lv filename
Như vậy là mình đã hướng dẫn xong cách sử dụng lệnh gzip trong Linux, đây là lệnh dùng để nén file và giải nén file rất hũu ích trong Linux.