bdiff dường như có sẵn trên Linux (ít nhất là một phần của Công cụ gia truyền ).
khác
Tôi có lẽ sẽ chỉ sử dụng khác thường cũ với chuyển đổi này tuy nhiên:
diff --speed-large-files bigfileA bigfileB
Tại sao nó không hoạt động?
Xem bình luận của @EvanTeitelman, --speed-large-files
không ảnh hưởng đến cách các tệp được tải vào bộ nhớ.
Có thể được chứng minh / xác nhận không hoạt động bằng lệnh sau:
fallocate -l 10G testa; fallocate -l 10G testb && \
diff --speed-large-files -a testa testb
bsdiff
Khó để xác nhận điều này nhưng tôi đã tìm thấy một công cụ có tên bsdiff
bắt nguồn từ đó bdiff
. Tôi đã xác nhận rằng công cụ này có trong Ubuntu, đơn giản apt-get install bsdiff
.
Tại sao nó có thể làm việc?
Một lần nữa cảm ơn @EvanTeitelman trong các bình luận, bsdiff
ở trên là một công cụ khác cho các tệp nhị phân. bsdiff
là một công cụ khác biệt nhị phân và có thể xử lý các tệp lớn. Không rõ là nó lớn đến mức nào. Xem các liên kết sau đây đến một chủ đề thảo luận về việc sử dụng nó.
thứ ba
Tôi nghĩ rằng bạn cũng có thể sử dụng ndiff để làm điều này là tốt. Rdiff có thể xử lý các tệp rất lớn.
Tạo chữ ký của một tệp:
rdiff signature A sigs.txt
Sử dụng tệp chữ ký được tạo sigs.txt và tệp B lớn khác để tạo delta:
rdiff delta sigs.txt B deltaAB.txt
Delta chứa tất cả thông tin bạn cần để tạo lại tệp B khi bạn chỉ có A và tệp deltaAB.txt.
Để tạo lại B, hãy chạy:
rdiff patch A deltaAB.txt B
Tại sao nó hoạt động?
Tôi tìm thấy bài đăng trên blog này có tiêu đề: Khác biệt tốt hơn hoặc phải làm gì khi GNU diff hết bộ nhớ ("diff: bộ nhớ cạn kiệt") , báo cáo rằng một tệp 4,5 GB chỉ tiêu thụ ~ 66 MB RAM.
lfhex
lfhex là một ứng dụng để xem và chỉnh sửa các tệp trong văn bản hex, bát phân, nhị phân hoặc ascii. Sức mạnh chính của lfhex là khả năng làm việc với các tệp lớn hơn nhiều so với bộ nhớ hệ thống. Tuy nhiên, đây là một công cụ GUI.
ảnh chụp màn hình
Người giới thiệu