【问题标题】:On linux is there any tool can compare 2 flolders and produce a patch file?在 linux 上是否有任何工具可以比较 2 个文件夹并生成补丁文件?
【发布时间】:2010-12-03 06:36:43
【问题描述】:

/opt/src 目录下的 A,B,C 文件

D,E,目录/opt/dest中的一个文件

比较src和dest,确定应该在dest中添加B,C,删除D,E,看看A是否改变

并给 A 一个二进制补丁或只是覆盖它。

所有这些操作都打包在一个补丁文件中,包括修改的和丢失的文件内容,我可以把这个文件复制到另一台机器上执行。

我知道编写一些程序来做到这一点很简单,但我不想再次发明轮子

rsync 似乎可以满足我的大部分需求,但不知道如何制作补丁。

谢谢

【问题讨论】:

    标签: linux compare directory


    【解决方案1】:

    老办法:diff -uNr /opt/src /opt/dest > /tmp/src.patch

    有一些程序可以自动执行该过程,例如 makepatch。

    【讨论】:

    • gendiff 是我喜欢使用的一个,因为它不需要目录的第二个副本。
    • 另一个问题,二进制文件怎么样?
    • 嗯,最好单独发布...刚刚得到了我自己问题的答案,我又忙了!
    【解决方案2】:

    带有选项 -r 的程序 diff

    diff [-c| -e| -f| -C n][-br] file1 file2
    
    [...]
    
    -r
      Apply diff recursively to files and directories
      of the same name when file1 and file2 are both
      directories.
    

    【讨论】:

      猜你喜欢
      • 2013-05-28
      • 2010-09-08
      • 2020-08-14
      • 1970-01-01
      • 2011-01-28
      • 2012-06-20
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      相关资源
      最近更新 更多