Dù là một trong các giải pháp nén/lưu trữ nhanh hơn có sẵn, gzip có một vấn đề nhỏ: nó không hỗ trợ nhiều bộ xử lý/nhân (cores). Do đó, nếu bạn có PC tương đối mới, nó không tận dụng được khả năng của nó. Pigz là một triển khai đa luồng (multi-threaded) của gzip cho phép bạn nén file sang định dạng GNU zip chỉ trong một phần nhỏ thời gian. Đây là cách nén file nhanh hơn với pigz.
Cài đặt (Installation)
Để cài đặt pigz trên Ubuntu, Mint, và các bản phân phối tương thích Debian khác, hãy dùng:
sudo apt install pigz
Trên Arch và Manjaro Linux, cài đặt nó với:
sudo pacman -S pigz
Nếu bạn đang dùng openSUSE, hãy thử:
sudo zypper install pigz
Nén một file đơn lẻ (Compress a Single File)
Để nén bất kỳ file nào sang định dạng GNU Zip với pigz, hãy dùng:
pigz NAME_OF_FILE
Đối với một số người, có thể là vấn đề rằng, theo mặc định, pigz xóa file gốc sau khi nén. Nếu bạn muốn giữ nó, bạn phải dùng công tắc -k (chú ý là chữ thường).
pigz -k NAME_OF_FILE
Pigz hỗ trợ nhiều mức độ nén, và bạn có thể chọn giữa chúng bằng cách nói số của chúng sau dấu gạch ngang. Ví dụ:
pigz -5 FILE_TO_BE_COMPRESSED
Bạn có thể dùng số từ 1 đến 9, với "1" cung cấp hiệu suất nhanh nhất nhưng nén thấp nhất và "9" cung cấp chậm nhất nhưng nén cao nhất.
Nén thư mục (Compressing Folders)
Pigz có một hạn chế đáng kể: nó không hỗ trợ thư mục. Bạn chỉ có thể nén file đơn lẻ với nó. Một giải pháp thay thế là dùng nó cùng với tar.
Giả sử bạn muốn nén thư mục "Pictures" (Hình ảnh). Vì tar hỗ trợ dùng chương trình nén bên ngoài, bạn có thể làm sau:
tar --use-compress-program="pigz -k -9" -cf pictures.tar.gz Pictures
Trong lệnh trên, tar --use-compress-program chỉ ra rằng mặc dù bạn sẽ tạo file archive với tar, việc nén nội dung của nó sẽ xảy ra qua chương trình bên ngoài.
Chương trình bên ngoài và tham số của nó được định nghĩa với phần pigz -k -9 của lệnh.
Cuối cùng, chỉ ra rằng bạn muốn Create a File ("-cf") tên "pictures.tar.gz" với mọi thứ tìm thấy trong thư mục "Pictures".
Giải nén File và Thư mục (Decompressing Files And Folders)
Giải nén bất kỳ file gz nào với pigz đơn giản như nhập một trong các lệnh sau:
pigz -d FILENAME.gz unpigz FILENAME.gz
Trong file tar.gz chúng ta tạo trước đó, giải nén thư mục dùng cùng cách tiếp cận "tar".
tar --use-compress-program="pigz -d" -xvf pictures.tar.gz
Giới hạn song song hóa (Limiting Parallelization)
Cuối cùng, cần lưu ý một công tắc thêm có thể hữu ích: p. Pigz, theo mặc định, dùng tất cả bộ xử lý/nhân trong máy tính của bạn. Khi nén tập dữ liệu lớn, điều này có thể ảnh hưởng đến khả năng phản hồi của máy tính.
Với công tắc p, bạn có thể giới hạn pigz chỉ dùng một số lượng cụ thể bộ xử lý/nhân. Điều này sẽ để lại phần còn lại nhân tự do cho các tác vụ và tương tác khác. Để làm vậy, hãy thêm số bộ xử lý/nhân ngay sau công tắc:
pigz -k -p2 FILE_TO_BE_COMPRESSED
-p2 giới hạn pigz chỉ dùng hai bộ xử lý/nhân. Bạn có thể dùng bất kỳ số nào bạn thích, nhưng đề xuất bạn giữ nó trong giới hạn phần cứng.
Để tìm hiểu thêm về nén và giải nén file trên Linux, hãy xem hướng dẫn sâu của chúng tôi về các lệnh nén và lưu trữ của Linux.