Solarisには、RAMサイズより大きいファイルをbdiff(1)
読み取ることができるコマンドがあります(diff(1)
文書)。
Linuxにも似ていますか?私はインターネットを検索しようとしましたが、bdiff
Ubuntuでどのパッケージも見つかりませんでした。
答え1
bdiffが使えるようです。Linuxでは(少なくとも家宝ツールボックス)。
違い
しかし、おそらくこのスイッチには一般的な古いdiffを使用します。
diff --speed-large-files bigfileA bigfileB
なぜ動作しないのですか?
@EvanTeitelmanのコメントをご覧ください。--speed-large-files
ファイルがメモリにロードされる方法には影響しません。
次のコマンドを使用して機能しないことを実証/確認できます。
fallocate -l 10G testa; fallocate -l 10G testb && \
diff --speed-large-files -a testa testb
BSDIF
これを確認するのは難しいですが、というツールを見つけました。bsdiff
bdiff
このツールはUbuntuにあることを確認しましたapt-get install bsdiff
。
なぜ動作しますか?
コメント中の@EvanTeitelmanにもう一度感謝します。bsdiff
上記はバイナリのdiffツールです。bsdiff
大容量ファイルを処理できるバイナリ比較ツールです。正確にどれだけ大きいかは不明です。以下のリンクでその使用法を説明するスレッドを参照してください。
違い
活用してもいいと思います。違いこれも可能です。 Rdiffは非常に大きなファイルを処理できます。
ファイルの署名を作成します。
rdiff signature A sigs.txt
生成された署名ファイルsigs.txtと別の大容量ファイルBを使用してデルタを作成します。
rdiff delta sigs.txt B deltaAB.txt
AファイルとdeltaファイルdeltaAB.txtのみがある場合、DeltaにはファイルBを再作成するために必要なすべての情報が含まれます。
B を再生成するには、次を実行します。
rdiff patch A deltaAB.txt B
なぜ動作しますか?
次のタイトルのブログ投稿を見つけました。より良い diff または GNU diff にメモリが不足しているときに実行する操作 ("diff: out of memory")、 4.5GB ファイルの rdiff は約 66MB の RAM だけ消費すると報告します。
16進数
16進数16進数、8進数、2進数、またはASCIIテキストファイルを表示および編集するためのアプリケーションです。 lfhexの最大の利点は、システムメモリよりもはるかに大きなファイルを処理できることです。ただし、これはGUIツールです。
スクリーンショット