例如: a文件夹下包含文件: 1.png 、2.png 、3.png
b文件夹下包含文件:              2.png、3.png、4.png
如何能对比出 b 比 a:多了个 4.png 文件、少了个 1.png文件, 并且生成对应的补丁文件,  用于将 a + 补丁文件 合并成 b 或者: 用sheel 或python 写一个脚本,将b中多的文件保持在原文件夹中的路径,复制到c文件夹中;然后把b中少了的文件的路径以字符串的格式,写到一个文本文件中;

解决方案 »

  1.   

    $ mkdir a b c
    $ touch a/{1,2,3}.png b/{2,3,4}.png$ rsync --size-only -rnv --delete a/ b  
    sending incremental file list
    deleting 4.png
    1.pngsent 61 bytes  received 15 bytes  152.00 bytes/sec
    total size is 0  speedup is 0.00 (DRY RUN)
    然后你可以对rsync的结果进行过滤,再执行相关操作。
    使用diff -r也可以。
    $ diff -r a b
    Only in a: 1.png
    Only in b: 4.png
    但是diff对每个文件都计算校验码,如果碰到大文件会非常慢。
      

  2.   

    说错,diff是比较两个文件中的每一行,所以文件多了,大了都会很慢