Làm thế nào để sử dụng "bzip2" để nén tập tin

Một điều tất cả các bạn biết về Linux là có rất nhiều sự đa dạng. Có hàng trăm bản phân phối Linux, với hàng chục môi trường máy tính để bàn, nhiều bộ ứng dụng văn phòng, gói đồ họa và gói âm thanh.

Một lĩnh vực khác mà Linux cung cấp đa dạng là khi nói đến nén các tập tin.

Người dùng Windows sẽ biết tệp nén là gì và do đó lệnh " zip " và " giải nén " sẽ được sử dụng để nén và giải nén tệp ở định dạng "zip".

Một phương pháp khác để nén tệp là sử dụng lệnh "gzip" và giải nén tệp có phần mở rộng "gz", bạn có thể sử dụng lệnh "gunzip".

Trong hướng dẫn này, tôi sẽ chỉ cho bạn một lệnh nén khác gọi là "bzip2".

Tại sao nên sử dụng & # 34; bzip2 & # 34; Hơn & # 34; gzip & # 34 ;?

Lệnh "gzip" sử dụng phương pháp nén LZ77. Công cụ nén "bzip2" sử dụng thuật toán "Burrows-Wheeler".

Vậy bạn nên sử dụng phương pháp nào để nén tệp?

Nếu bạn truy cập trang này, bạn sẽ thấy rằng cả hai phương pháp nén đã được kết hợp cạnh nhau.

Thử nghiệm chạy mỗi lệnh bằng cách sử dụng các thiết lập nén mặc định và bạn sẽ thấy rằng lệnh "bzip2" xuất hiện trên đầu trang khi nói đến việc giảm kích cỡ tệp.

Tuy nhiên, nếu bạn nhìn vào thời gian cần để nén tập tin cần nhiều thời gian hơn để làm như vậy.

Đó là giá trị chỉ ra cột thứ 3 trên biểu đồ được dán nhãn "lzmash". Điều này tương đương với việc chạy lệnh "gzip" với mức nén được đặt thành "-9" hoặc đặt nó bằng tiếng Anh, "được nén nhiều nhất".

Lệnh "lzmash" mất nhiều thời gian hơn lệnh "gzip" theo mặc định nhưng tệp được giảm đáng kể và nó nhỏ hơn "bzip2" tương đương. Nó cũng đáng chú ý rằng phải mất ít thời gian hơn để làm như vậy.

Do đó, quyết định của bạn sẽ là số tiền bạn muốn nén các tệp theo và thời gian bạn sẵn sàng chờ để nó xảy ra.

Dù bằng cách nào, lệnh "gzip" tốt hơn một chút trong cả hai trường hợp.

Nén tệp bằng & # 34; bzip2 & # 34 ;.

Để nén tệp bằng định dạng "bzip2", hãy chạy lệnh sau:

tên tệp bzip2

Tệp sẽ được nén và bây giờ sẽ có phần mở rộng ".bz2".

"Bzip2" sẽ luôn cố gắng và nén tệp ngay cả khi tệp lớn hơn kết quả. Điều này có thể xảy ra khi bạn đang nén một tệp đã được nén.

Nếu bạn cố gắng nén một tệp sẽ dẫn đến tệp có cùng tên với tệp nén hiện có thì một lỗi sẽ xảy ra.

Ví dụ, nếu bạn có một tập tin gọi là "file1" và thư mục đã có một tập tin gọi là "file1.bz2" thì khi chạy lệnh "bzip" bạn sẽ thấy kết quả sau:

bzip2: Tệp đầu ra file1.bz2 đã tồn tại

Cách giải nén tệp

Có nhiều cách khác nhau để giải nén các tệp có phần mở rộng "bz2".

Bạn có thể sử dụng lệnh "bzip2" như sau:

bzip2 -d filename.bz2

Điều này sẽ giải nén tập tin và loại bỏ phần mở rộng "bz2".

Nếu bằng cách giải nén tập tin, nó sẽ khiến một tệp có cùng tên bị ghi đè, bạn sẽ thấy lỗi sau:

bzip2: Tên tệp tệp đầu ra đã tồn tại

Một cách tốt hơn để giải nén các tệp có phần mở rộng "bz2" là sử dụng lệnh "bunzip2". Với lệnh này, bạn không cần phải chỉ định bất kỳ nút chuyển nào như sau:

bunzip2 filename.bz2

Lệnh "bunzip2" chạy chính xác giống như lệnh "bzip2" bằng công tắc trừ d (-d).

Lệnh "bunzip2" có thể trích xuất bất kỳ tệp hợp lệ nào đã được nén bằng cách sử dụng "bzip" hoặc "bzip2". Cũng như giải nén các tập tin thông thường, nó cũng có thể giải nén các tập tin tar đã được nén bằng cách sử dụng lệnh "bzip2".

Theo mặc định, các tệp tar được nén bằng lệnh "bzip2" sẽ có phần mở rộng ".tbz2". Khi bạn giải nén tệp này bằng lệnh "bunzip2", tên tệp sẽ trở thành "filename.tar".

Nếu bạn có một tệp hợp lệ đã được nén bằng "bzip2" nhưng nó có phần mở rộng khác với "bzip2" sẽ giải nén tệp nhưng nó sẽ thêm phần mở rộng ".out" vào cuối tệp. Ví dụ: "myfile.myf" sẽ trở thành "myfile.out".

Làm thế nào để lực lượng tập tin để được nén

Nếu bạn muốn lệnh "bzip2" nén tệp bất kể tệp có phần mở rộng "bz2" đã tồn tại thì bạn có thể sử dụng lệnh sau:

bzip2 -f tệp của tôi

Nếu bạn có một tệp có tên là "myfile" và một tệp khác có tên "myfile.bz2" thì tệp "myfile.bz2" sẽ bị ghi đè khi "myfile" được nén.

Cách giữ cả hai tệp

Nếu bạn muốn giữ tệp bạn đang nén và tệp nén, bạn có thể sử dụng lệnh sau:

bzip2 -k tệp của tôi

Điều này sẽ giữ tập tin "myfile" nhưng cũng sẽ nén nó và tạo một tập tin "myfile.bz2".

Bạn cũng có thể sử dụng công tắc trừ k (-k) với lệnh "bunzip2" để giữ cả tệp nén và tệp không nén trong khi giải nén tệp.

Kiểm tra tính hiệu lực của A & # 34; bz2 & # 34; Tập tin

Bạn có thể kiểm tra xem một tệp có được nén bằng cơ chế nén "bzip2" hay không bằng cách sử dụng lệnh sau:

bzip2 -t filename.bz2

Nếu tệp là một tệp hợp lệ thì không có đầu ra nào được trả về nhưng nếu tệp không hợp lệ, bạn sẽ nhận được một thông báo nói như vậy.

Sử dụng ít bộ nhớ hơn khi nén tệp

Nếu lệnh "bzip2" đang sử dụng quá nhiều tài nguyên trong khi nén tệp, bạn có thể giảm tác động bằng cách chỉ định công tắc trừ (s) như sau:

bzip2 -s filename.bz2

Lưu ý rằng phải mất nhiều thời gian hơn để nén tệp bằng cách sử dụng nút chuyển này.

Nhận thêm thông tin khi nén tệp

Theo mặc định khi bạn chạy lệnh "bzip2" hoặc "bunzip2", bạn không nhận được bất kỳ đầu ra nào và tệp mới vừa xuất hiện.

Nếu bạn muốn biết điều gì đang xảy ra khi bạn nén hoặc giải nén một tệp, bạn có thể nhận được kết xuất tiết hơn bằng cách chỉ rõ công tắc trừ v (-v) như sau:

bzip2 -v tên tệp

Đầu ra sẽ xuất hiện như sau:

tên tệp: 1.172: 1 6.872 bit / byte 14.66% đã lưu 50341 trong 42961 ra

Các phần quan trọng là phần trăm được lưu, kích thước đầu vào và kích thước đầu ra.

Khôi phục tệp bị hỏng

Nếu bạn có tệp "bz2" bị hỏng thì chương trình sẽ sử dụng để thử và khôi phục dữ liệu như sau:

bzip2recover filename.bz2