Giống như hầu hết các bản phân phối Linux hiện đại, Ubuntu đi kèm nhiều công cụ mặc định cho mọi nhu cầu. Trong số đó, bạn sẽ tìm thấy Trình quản lý Архив (Archive Manager) để lưu trữ file trong các gói nén. Tuy nhiên, có một vấn đề nhỏ: chúng có thể vẫn quá lớn cho nhu cầu của bạn. Trong những trường hợp đó, cách tốt nhất là nén và chia file thành các phần nhỏ hơn.
Mặc dù Ubuntu đi kèm công cụ để làm chính xác việc đó, nhưng đáng tiếc Archive Manager không phải là lựa chọn tốt nhất cho các tác vụ như vậy. Đó là lúc bạn phải chuyển sang terminal. May mắn thay, quy trình rất dễ dàng, và bạn có thể vừa nén vừa chia file thành các phần nhỏ hơn chỉ với một lệnh. Hãy xem cách thực hiện.
Hiểu về nén dữ liệu
Trước khi bắt đầu, chúng ta phải giải thích một chút về tất cả các dạng nén, điều này sẽ giúp bạn tiết kiệm thời gian quý báu: nén không thể xếp chồng lên nhau.
Điều đó có nghĩa là nếu bạn có một đống file đã nén cao, bạn sẽ không thu được nhiều lợi ích bằng cách nén lại chúng với một loại nén khác. Giả sử bạn muốn chia sẻ các file như ảnh JPG đã nén cao, video MP4, hoặc các archive đã nén khác. Trong trường hợp đó, không có ý nghĩa gì khi dùng cài đặt nén cao nhất. Tốt hơn nên chọn "lưu trữ" (store - không nén) chúng trong một archive.
Tuy nhiên, đối với file chưa nén hoặc nén nhẹ, như file TXT, cơ sở dữ liệu lớn, hoặc media chưa nén, việc chọn cài đặt nén cao nhất có thể tạo ra file nhỏ hơn đáng kể.
Phương pháp Linux kinh điển
Giả sử bạn muốn nén một file như file ISO Windows 10 được dùng ở đây. Bạn có thể dùng các công cụ kinh điển như tar, split, và bzip để nén và chia nó thành các file nhỏ hơn.
- Mở terminal. Cách nhanh là nhấn CTRL + ALT + T. Sau đó, di chuyển đến thư mục chứa file lớn bạn muốn lưu trong archive chia nhỏ. Để giữ cho mọi thứ gọn gàng, tạo một thư mục con tên "split", nơi chúng ta sẽ lưu archive chia nhỏ, bằng lệnh:
mkdir split
Sau đó, vào thư mục đó với:
cd split
- Sử dụng lệnh sau để nén file hoặc thư mục của bạn thành một archive chia nhỏ:
tar -cvj TÊN_FILE | split -b KÍCH_THƯỚC_PHẦN -d - "TÊN_CƠ_SỞ_CỦA_ARCHIVE"
Đối với file ISO Windows 10 của chúng tôi, lệnh trông như sau:
tar -cvj ~/Data/Windows10.iso | split -b 50m -d - "Windows10_ISO.tar.bz."
- "~/Data/Windows10.iso" là đường dẫn và tên file chúng ta muốn nén.
split -b 50mchỉ ra rằng chúng ta muốn chia archive thành các phần 50 MB. Thay đổi giá trị này để phản ánh kích thước bạn muốn.Windows10_ISO.tar.bz.là tên file của các phần archive chia nhỏ. Lưu ý có một chấm thêm ở cuối. Đó là vì mỗi phần cũng sẽ có một số ở cuối, phản ánh vị trí của nó trong chuỗi.
Ngay sau đó, tùy thuộc vào kích thước file bạn đang nén và tốc độ máy tính, bạn sẽ tìm thấy các phần archive chia nhỏ trong thư mục con split.
Nếu kiểm tra kích thước tổng cộng của chúng, nó sẽ nhỏ hơn tổng dung lượng chưa nén.
Để lấy lại file gốc, bạn trước tiên phải ghép nối tất cả các phần thành một archive đơn lẻ với:
cat TÊN_CƠ_SỞ_CỦA_CÁC_PHẦN.* > TÊN_CƠ_SỞ_CỦA_CÁC_PHẦN.bz
Sau đó, giải nén nội dung của nó với:
tar -xvj ARCHIVE_ĐÃ_GHÉP.bz
Trong trường hợp của chúng tôi, hai lệnh trên sẽ trông như sau:
cat Windows10_ISO.tar.bz.* > Windows10_ISO.tar.bz tar -xvj Windows10_ISO.tar.bz
Tuy nhiên, chúng ta có thể làm tốt hơn bằng cách dùng một công cụ nén hiện đại hơn, như bạn sẽ thấy tiếp theo.
Giải pháp nén cao hiện đại
7Zip là một trình lưu trữ hiện đại cung cấp tỷ lệ nén cao và cũng hỗ trợ archive chia nhỏ. Do đó, nó là giải pháp tốt hơn cho tác vụ hiện tại. Tuy nhiên, Ubuntu không đi kèm nó. Để cài phiên bản Linux của nó, p7zip, dùng:
sudo apt install p7zip-full
Nén file của bạn trong archive chia nhỏ với nó thậm chí còn dễ dàng hơn giải pháp mặc định chúng ta vừa thấy. Bạn chỉ cần chỉ định kích thước mỗi file chia nhỏ, tên cơ sở archive, và thứ bạn muốn nén, với:
7z -vKÍCH_THƯỚC_FILE_CHIA a TÊN_FILE_ARCHIVE FILE_CẦN_NÉN
Với ví dụ ISO Windows 10 của chúng tôi, để nén nó trong archive nhiều phần mà mỗi phần 50 MB, lệnh trông như sau:
7z -v50m a Windows10_iso.7z ~/Data/Windows10.iso
Sau một lúc, bạn sẽ tìm thấy kết quả trong thư mục con split, và chúng sẽ chiếm dung lượng nhỏ hơn nếu bạn dùng cách tar-split-bzip chúng ta thấy trước đó.
Để lấy lại file của bạn, chỉ cần giải nén file đầu tiên của chuỗi, và 7z sẽ tự động xử lý phần còn lại:
7z e PHẦN_ĐẦU_TIÊN_CỦA_ARCHIVE_NÉN
Trong ví dụ của chúng tôi, đây là:
7z e Windows10_iso.7z.001
Cũng đáng lưu ý rằng, ngày nay, bạn có nhiều tùy chọn hơn để tạo archive nén với các công cụ như pigz hoặc plzip.
Bạn có thấy archive chia nhỏ nén thực tế không? Bạn đang dùng công cụ nén nào để xử lý chúng? Hãy cho chúng tôi biết trong phần bình luận bên dưới.