Linux 中有 bdiff(1) 吗?

Linux 中有 bdiff(1) 吗?

Solaris 中有bdiff(1)一个命令,允许您读取diff(1)大小大于 RAM 大小的文件(文档)。

Linux中有类似的东西吗?我尝试谷歌搜索,但没有找到bdiffUbuntu 中的哪个软件包。

答案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 能够处理非常大的文件。

  1. 创建一个文件的签名:

    rdiff signature A sigs.txt
    
  2. 使用生成的签名文件 sigs.txt 和另一个大文件 B 来创建增量:

    rdiff delta sigs.txt B deltaAB.txt
    
  3. 当您只有 A 和增量文件 deltaAB.txt 时,Delta 包含重新创建文件 B 所需的所有信息。

    要重新创建 B,请运行:

    rdiff patch A deltaAB.txt B
    

为什么它有效?

我发现这篇博文标题为:更好的 diff 或当 GNU diff 内存不足时该怎么办(“diff:内存耗尽”),报告称 4.5GB 文件的 rdiff 仅消耗约 66MB 的 RAM。

十六进制

十六进制是一个用于查看和编辑十六进制、八进制、二进制或 ascii 文本文件的应用程序。 lfhex 的主要优势是它能够处理比系统内存大得多的文件。然而它是一个 GUI 工具。

截屏

                  lfhex 的 ss]![lfhex 的 ss

参考

相关内容