Hướng dẫn nén và giải nén file bằng bzip2 trên Linux

Lệnh bzip2 được sử dụng để nén và giải nén các tập tin.

Nén dữ liệu là quá trình mã hóa dữ liệu bằng cách sử dụng ít bit hơn. Giải nén dữ liệu là quá trình khôi phục dữ liệu đã nén trở lại dạng ban đầu để có thể sử dụng được.

bzip2 có tốc độ nén cao với tốc độ nhanh hợp lý. bzip2 để lại hầu hết các File nén ở kích thước File nhỏ hơn chương trình zip truyền thống. Hơn nữa, giống như các chương trình đó, bzip2 là nén không mất dữ liệu, có nghĩa là không có dữ liệu nào bị mất trong quá trình nén, vì vậy các File gốc có thể được tạo lại chính xác. Nhược điểm duy nhất của bzip2 là nó hơi chậm hơn so với gzip và zip.

Hiệu suất này đã đạt được thông qua việc sử dụng biến đổi Burrows-Wheeler (BWT). Được xuất bản lần đầu tiên bởi Michael Burrows và David Wheeler vào năm 1994, BWT không phải là một thuật toán nén dữ liệu; thay vào đó, nó chuyển đổi các khối dữ liệu thành một định dạng cực kỳ thích hợp để nén. Ngoài ra, nó có thể đảo ngược, có nghĩa là dữ liệu gốc có thể được tạo lại dễ dàng.

Cú pháp của bzip2 là:

bzip2 [option(s)] tên_File

bzip2 thường được sử dụng mà không có bất kỳ tùy chọn nào. Bất kỳ số lượng File nào cũng có thể được nén đồng thời bằng cách liệt kê tên của chúng dưới dạng đối số (tức là đầu vào). Ví dụ sau nén ba File có tên File1, File2 và File3:

bzip2 file1 file2 file3

Nếu không gặp sự cố nào, theo mặc định không có xác nhận nào được cung cấp. Tuy nhiên, nếu một số vấn đề gặp phải, một thông báo lỗi sẽ được trả về cho mỗi File sự cố. Nên xác nhận mức độ nén, sau đó bzip2 có thể được sử dụng với tùy chọn -v (tức là dài dòng), chẳng hạn như:

Mình nghĩ bạn cần xem =>  Toàn bộ hướng dẫn khởi động sạch (Clean Boot) cho Windows

bzip2 -v file1 file2 file3

Mỗi File được thay thế bằng một phiên bản nén của chính nó, với phần mở rộng .bz2 được thêm vào tên. Vì vậy, trong trường hợp của ví dụ trên, ba File đầu vào sẽ được thay thế bằng các File có tên file1.bz2, file2.bz2 và file3.bz2. Điều này có thể dễ dàng xác nhận bằng lệnh ls (tức là danh sách) và kích thước của các File mới có thể được xem bằng cách sử dụng ls kết hợp với tùy chọn -s (tức là kích thước) của nó. Các File gốc có thể được giữ lại bằng cách sử dụng tùy chọn -k (tức là giữ lại).

Mỗi File lưu trữ được giữ lại trong phạm vi có thể, cùng một siêu dữ liệu (tức là ngày sửa đổi, quyền truy cập và quyền sở hữu) như File gốc tương ứng, để dữ liệu này có thể được khôi phục chính xác tại thời điểm nghỉ. nén.

Nén được thực hiện ngay cả khi bản lưu trữ lớn hơn bản gốc. Tình trạng này có thể xảy ra trong trường hợp File rất nhỏ, vì cơ chế nén được cố định khoảng 50 byte.

Tùy chọn -s (tức là nhỏ) giảm mức sử dụng bộ nhớ để nén, giải nén và kiểm tra, điều này rất hữu ích cho các máy tính có bộ nhớ rất nhỏ (ví dụ: 8MB hoặc ít hơn). Các File được giải nén và kiểm tra bằng cách sử dụng một thuật toán đã sửa đổi chỉ yêu cầu 2,5 byte mỗi khối, mặc dù điều này dẫn đến tỷ lệ giảm khoảng một nửa.

Tùy chọn -t (tức là kiểm tra) cho bzip2 kiểm tra tính toàn vẹn của (các) File được chỉ định bằng cách thực hiện giải nén và loại bỏ kết quả. Không ảnh hưởng đến các File được chỉ định.

Mình nghĩ bạn cần xem =>  Cách thiết lập IP Failover với KeepAlived trên Ubuntu & Debian

Như một biện pháp an toàn, bzip2 theo mặc định sẽ không ghi đè các File hiện có có cùng tên (bao gồm cả phần mở rộng) làm File đầu ra của nó hoặc phá vỡ các liên kết cứng (tức là các tên thay thế cho một File). Tuy nhiên, tùy chọn -f buộc ghi đè các File hiện có và cũng hướng dẫn bzip2 phá vỡ các liên kết cứng đến File.

-D option: giải nén các tập tin được chỉ định. Nó giống như lệnh bunzip2. Các File không được tạo bởi bzip2 sẽ bị phát hiện và bỏ qua và một cảnh báo sẽ xuất hiện. Sẽ cố gắng đoán tên ban đầu của mỗi File được giải nén; tuy nhiên, nếu phiên bản nén không kết thúc bằng một trong các phần mở rộng được công nhận (ví dụ: .bz2, .bz, .tbz2 hoặc .tbz), thì bzip2 sẽ phàn nàn rằng nó không thể đoán được tên của File. root và sẽ sử dụng tên của phiên bản nén có thêm phần mở rộng .out.

Khá thuận tiện cho việc lưu trữ một số File trong kho lưu trữ, đó là một File duy nhất chứa nhiều File riêng lẻ cùng với thông tin, cho phép khôi phục chúng về trạng thái ban đầu bằng một hoặc nhiều chương trình giải nén. Đầu tiên kết hợp các File không nén bằng lệnh tar cùng với các tùy chọn -c và -f, sau đó sử dụng bzip2 trên File hợp nhất. Tùy chọn -c hướng dẫn tar liên kết các File và tùy chọn -f yêu cầu nó sử dụng đối số sau tên của File mới. Ví dụ: các lệnh sau sẽ kết hợp ba File có tên File4, File5 và File6 thành một File lưu trữ duy nhất có tên File7.tar và sau đó nén File lưu trữ đó vào File lưu trữ có tên File7.tar.bz2:

Mình nghĩ bạn cần xem =>  8 Cách sửa lỗi máy tính Windows 10 bị treo, đóng băng

tar -cf file7.tar file4 file5 file6

bzip2 file7.tar

Ngoài ra, tất cả những điều trên có thể được thực hiện trong một bước đơn giản bằng cách thêm tùy chọn -j vào tar, yêu cầu tar nén File lưu trữ mà nó tạo bằng bzip2. Do đó, ví dụ trên sẽ được đơn giản hóa thành:

tar -cjf file7.tar.bz2 file4 file5 file6

Dịch từ: http://www.linfo.org/bzip2.html

>> Có thể bạn quan tâm: Hướng dẫn mã hiển thị thông báo xác nhận có / không có bash shell

✤ Top 20 bài viết Thủ Thuật mới nhất :

Xem thêm nhiều Thủ Thuật mới hay

Leave A Reply

Your email address will not be published.