Sử dụng các lưu trữ nén RAR và 7-Zip trong Linux

Cập nhật lúc 11h45' ngày 07/02/2007

Định dạng file nén RAR và 7-Zip có nguồn gốc từ Windows và không được hỗ trợ tự động trong Unix như Gzip và TAR trước đây. Nhưng với một phần mềm chuẩn, bạn có thể sử dụng các file này mà không gặp phải phiền phức gì.

Trước hết chúng ta làm quen với một số điểm cơ bản. RAR, tên viết tắt của Roshal Archive, là định dạng file nén có bản quyền do Eugene Roshal phát triển. Trước đó, Roshal đã bán tiện ích thương mại có tên WinRAR cho Windows, đồng thời cũng cung cấp miễn phí bản client chỉ giải nén cho một số hệ điều hành.

7-Zip là một ứng dụng Windows, được thiết kế để quản lý hầu hết các kiểu file nén. Định dạng tự nhiên của nó là 7z, sử dụng một nhánh thuật nén hiện đại của LZ77. Ứng dụng Windows 7z và bộ phát triển phần mềm đều đã được cung cấp với tên LGPL.

Hai kiểu định dạng này tạo tỷ lệ nén tốt hơn nhiều cho các kiểu dữ liệu phổ biến so với một số thuật toán cũ. Chúng cũng hỗ trợ phân tách các lưu trữ lớn thành nhiều bộ nhỏ hơn nhằm di chuyển và khôi phục lỗi dễ dàng. Sự kết hợp cả hai định dạng khiến chúng trở thành lựa chọn số một cho phân phối trực tuyến của các file cực lớn như ảnh ISO 7z và Linux. 

7z và Linux

7-Zip là ứng dụng mã nguồn mở, nhưng chỉ dành cho kiểu file Windows. Với người dùng Linux, các liên kết dự án với gói client command-line được đặt tên p7zip cung cấp hai thực thi: 7z và 7za. Cả hai có cùng cú pháp và tuỳ chọn, chỉ khác ở chỗ 7za là ứng dụng "tự chứa" chỉ được dùng cho 7z và một số định dạng Unix chủ yếu (tar, gzip, bzip2, v.v…). Còn 7z dùng cấu trúc plug-in, cho phép hỗ trợ nhiều định dạng nén bổ sung khác.

Cú pháp cơ bản: 7z function options ten_file.7z. Để giải nén một lưu trữ, dùng 7z x ten_file.7z. Bạn cũng có thể giải nén file bằng cách: 7z e ten_file.7z . Trong đó, hàm e có thể giải nén tất cả file vào thư mục hiện tại đang hoạt động, còn x duy trì đường dẫn của chúng.

RAR và Linux

Trường hợp của RAR thì phức tạp hơn một chút do nó có bản quyền của định dạng file. Trên website RARLAB cung cấp phiên bản chỉ dùng giải nén có bản quyền nhưng miễn phí cho khách hàng Linux, gọi là unrar. Bản này được thiết kế cho phân phối Intel 32-bit trong cả hai gói RPM, Slackware; như các mã nhị phân độc lập cho hệ thống Intel 64-bit, PowerPC; và các hệ thống Linux ARM. Chương trình unrar của RARLAB được cung cấp thành phần mềm miễn phí và phần mềm nguồn mở nên bạn sẽ không thấy bất kỳ phân phối Linux nào có tích hợp nó trong hệ điều hành. Bạn có thể download một đoạn mã nguồn tarball trên RARLAB, nhưng quy định bản quyền kèm theo cấm bạn dùng nó để phát triển bất kỳ chương trình mã hoá RAR nào.

Một lựa chọn khác là công cụ dòng lệnh có bản quyền GPLv2, do dự án Gna! phát triển. Gna! urar được thiết kế như một bộ bọc quanh unrarlib, thư viện mã hoá RAR nguồn mở do Christian Scheurer và Johannes Winkelmann, những người không thuộc Gna! phát triển.
Scheurer và Winkelmann phát triển thư viện unrarlib từ mã nguồn RARLAB nguyên bản ban đầu, nhưng vẫn phải cần các quyền do Eugene Roshal cho phép để trở thành phần mềm miễn phí. Do đó, có thể hiểu unrarlib được phát triển từ GPLv2 và bản quyền ban đầu của RARLAB.

Hợp đồng bản quyền này có vẻ là con đường thú vị để thực hiện phần mềm chạy cuối quanh RARLAB và tạo chương trình mã hoá RAR tin học từ mã nguồn ban đầu, nhưng cho tới nay điều này vẫn chưa diễn ra. Sheurer không cảm thấy thích thú với ý tưởng này. Tác giả nói rằng, anh thích dùng các định dạng nguồn mở để tạo lưu trữ hơn. "Không phải lúc nào bạn cũng có thể lựa chọn được kiểu định dạng dữ liệu. Vì thể, thật tuyệt nếu có cách thức mở để truy cập nó. Nhưng bạn có thể chọn cách tạo ra một lưu trữ. Nếu không muốn sử dụng các công cụ nén nguồn đóng, có nhiều lựa chọn khác cho bạn".

Chương trình giải nén unrar có bản quyền sử dụng cú pháp cơ bản như 7z và 7za. Để giải nén, lưu trữ và duy trì đường dẫn file, gõ unrar x ten_file_luu_tru.rar. Trong GPL unrar, bạn cần thêm một dấu nối trước x: unrar -x ten_file_luu_tru.rar.

Hiện nay, thư viện unrarlib chỉ hỗ trợ phiên bản 2 (version 2) của định dạng file RAR. Sắp tới đây, định dạng RAR3 mới hơn có thể sẽ được hỗ trợ trong unrarlib, nhưng Scheurer nói rằng, anh không chắc có thể hy vọng một số kích hoạt lại từ RARLAB.

Hỗ trợ giao diện người dùng GUI

Nếu bạn thực hiện được hầu hết mọi việc trên chương trình Window Manager của Linux, bạn thật may mắn. Cả GNOME và KDE đểu có các chương trình quản lý lưu trữ đồ hoạ. File Roller cho GNOME và Ark cho KDE. Hầu hết mọi phiên bản gần đây của cả hai chương trình đều dùng cơ chế plug-in, hỗ trợ nhiều định dạng lưu trữ khác nhau và dựa trên p7zip để hỗ trợ cho 7z, dựa trên Gna! unrar hỗ trợ cho RAR. Mặc dù vậy, để giải quyết vấn đề không tương thích của các file RAR3 mới, bạn vẫn cần cài đặt chương trình unrar có bản quyền trên máy của mình.

Như đã đề cập đến ở phần đầu, cả 7z và RAR đều hỗ trợ phân tách các file lớn thành nhiều phần nhỏ hơn. Nhưng trong chương trình kiểm tra, cả File Rooler và Ark đều nhận ra rằng một thư mục đầy đủ với các file được đánh số lần lượt myfile.7z.001, myfile.7z.002, myfile.7z.003, v.v… tạo một file 7z phân tách thành các đoạn có kích thước theo bite.

Do đó, để có dữ liệu bên trong, bạn cần liên kết các file phân tách lại thành một file hoàn chỉnh trên dòng lệnh, sử dụng lệnh cat: cat ten_file.7z.001 ten_file.7z.002 ten_file.7z.003 > ten_file.7z. Một file hoàn chỉnh gắn lại từ các phần sẽ được tạo, đặt tên là ten_file.7z. Tại thời điểm đó, bạn có thể mở lưu trữ trong File Roller hoặc Ark. Nhưng sẽ nhanh hơn nếu gõ 7z x ten_file.7z.

T.Thu (Theo Linux)
Đánh giá(?):
META.vn | Mua sắm trực tuyến
Bài viết mới nhất
Xem tất cả
Bài viết cũ hơn cùng chủ đề