Các lệnh bzcmp, bzdiff, bzmore, bzless và bzgrep của Linux được giải thích bằng ví dụ

theanh

Administrator
Nhân viên
Trong khi tiện ích dòng lệnh bzip2 có thể nén các tệp, nhiều công cụ khác cho phép bạn thực hiện các tác vụ cơ bản - như so sánh các tệp đó - mà không cần phải giải nén chúng. Trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của lệnh bzcmp, bzdiff, bzmore, bzless và bzgrep bằng một số ví dụ dễ hiểu.

Nhưng trước khi thực hiện, cần lưu ý rằng tất cả các ví dụ trong bài viết này đều đã được thử nghiệm trên máy Ubuntu 22.04.

Linux bzcmp, bzdiff, bzmore, bzless và bzgrep lệnh​

Chúng ta sẽ thảo luận về từng lệnh này bằng cách trình bày theo kiểu Hỏi & Đáp.

Câu hỏi 1. Lệnh bzcmp và bzdiff hoạt động như thế nào?​

Như tên gọi của chúng, các lệnh này được sử dụng để so sánh các tệp .bz2. Sau đây là cú pháp của chúng:
Mã:
bzcmp [ cmp_options ] file1 [ file2 ]
bzdiff [ diff_options ] file1 [ file2 ]
Và đây là nội dung trang hướng dẫn sử dụng nói về chúng:
Mã:
Bzcmp và bzdiff được sử dụng để gọi chương trình cmp hoặc diff trên các tệp nén
 bzip2. Tất cả các tùy chọn được chỉ định đều được truyền trực tiếp đến
 cmp hoặc diff. Nếu chỉ có 1 tệp được chỉ định, thì các tệp được so sánh là
 tệp1 và tệp1.bz2 chưa nén. Nếu có hai tệp được chỉ định, thì
 chúng sẽ được giải nén nếu cần và đưa vào cmp hoặc diff. Trạng thái thoát
 từ cmp hoặc diff được giữ nguyên.
Sau đây là một ví dụ cơ bản về bzcmp và bzdiff:
Mã:
bzcmp file1.bz2 file2.bz2
Mã:
bzdiff file1.bz2 file2.bz2
Và ảnh chụp màn hình sau đây hiển thị đầu ra do các lệnh này tạo ra:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%2287%22%3E%3C/svg%3E


Mặc dù các lệnh này không cung cấp rõ ràng bất kỳ tùy chọn dòng lệnh nào, nhưng bạn có thể sử dụng các tùy chọn từ cmp anddiff (vì các công cụ này được lệnh bzcmp và bzdiff gọi nội bộ).

Câu hỏi 2. Lệnh bzmore và bzless hoạt động như thế nào?​

Giống như more và less, cả bzmore và bzless đều là bộ lọc để xem CRT, nhưng dành cho các tệp bz2 đã nén. Để bạn hiểu rõ hơn, đây là một đoạn trích về bzmore từ trang hướng dẫn của nó:
Mã:
Bzmore là bộ lọc cho phép kiểm tra các tệp văn bản thuần túy hoặc đã nén từng màn hình một trên thiết bị đầu cuối mềm. bzmore hoạt động trên các tệp được nén bằng bzip2 và cả trên các tệp không nén. Nếu một tệp
 không tồn tại, bzmore sẽ tìm một tệp cùng tên với phần bổ sung hậu tố .bz2.

 Bzmore thường tạm dừng sau mỗi lần sàng lọc, in --More-- ở
 cuối màn hình. Nếu sau đó người dùng nhập ký tự xuống dòng, một
 dòng nữa sẽ được hiển thị. Nếu người dùng nhấn vào một khoảng trắng, một lần sàng lọc khác sẽ được hiển thị. Các khả năng khác sẽ được liệt kê sau.
Tất nhiên, bạn cũng có thể sử dụng các lệnh này để xem tệp đã nén. Đây là một ví dụ:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22115%22%3E%3C/svg%3E

Câu hỏi 3. Lệnh bzgrep hoạt động như thế nào?​

Như bạn đã đoán được, bzgrep cũng hoạt động trên các dòng lệnh khác của loạt lệnh bz mà chúng tôi đã giải thích ở đây. Cụ thể, đó là grep, nhưng dành cho các tệp nén. Sau đây là một đoạn trích từ trang hướng dẫn của lệnh này:
Mã:
Bzgrep được sử dụng để gọi grep trên các tệp được nén bzip2. Tất cả
 tùy chọn được chỉ định đều được truyền trực tiếp đến grep. Nếu không có tệp nào được chỉ định, thì đầu vào chuẩn sẽ được giải nén nếu cần và đưa vào grep. Nếu không, các tệp đã cho sẽ được giải nén nếu cần và đưa vào grep.
Sau đây là một ví dụ về cách sử dụng bzgrep:
Mã:
bzgrep "menu" file1.bz2
Ảnh chụp màn hình sau đây hiển thị đầu ra:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22496%22%20height=%2237%22%3E%3C/svg%3E

Kết luận​

Vì vậy, nếu bạn đang xử lý các tệp nén (.bz2) và muốn thực hiện các thao tác cơ bản như tìm kiếm, so sánh, v.v., bạn có thể sử dụng các lệnh này. Chúng tôi đã thảo luận về những điều cơ bản tại đây. Để biết thêm thông tin về các công cụ này, hãy truy cập trang hướng dẫn của chúng (bzdiff, bzmorebzgrep).
 
Back
Bên trên