免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1827 | 回复: 3
打印 上一主题 下一主题

如何显示两个路径下的不同文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-24 10:25 |只看该作者 |倒序浏览
我们知道 diff 可以显示两个文本文件的不同
tree可以显示目录树
我想知道怎么显示两个目录下都有哪些文件不同,当然主要是查看文件名和文件大小。linux有类似命令吗?或tree有这样的选项吗?

论坛徽章:
0
2 [报告]
发表于 2011-03-24 11:22 |只看该作者
不要以文件大小作为文件是否相同的参照, 用 md5sum的 值作为判断:

find 路径1 -name "*.*" > file1
find 路径2 -name "*.*" > file2
awk -f test.awk file1 file2

BEGIN{
    FS = "/"
}
NR==FNR{
    array1[$NF] = $0
}
NR!=FNR{
    array2[$NF] = $0
}

END{
    FS = " "
    for (i in array1){
        md5_1 = get_md5_value(array1[i])

        if (! i in array2){
            print "do not have the same fine name-------"
            print array1[1]"\n"array2[2]
            continue
        }
        md5_2 = get_md5_value(array2[i])
        if (md5_1 != md5_2){
            print "the file name is same, but the content is diff##############"
            print array1[1]"\n"array2[2]
            continue
        }
    }

    print "ok, diff overr"
}

function get_md5_value(path){
    "md5sum "path | getline
    return $1
}



没有测试过 应该没多大的问题

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
3 [报告]
发表于 2011-03-24 12:09 |只看该作者
参考下这个帖子,可能有帮助
http://bbs.chinaunix.net/viewthr ... p;extra=&page=1

论坛徽章:
0
4 [报告]
发表于 2011-03-24 12:17 |只看该作者
本帖最后由 xiaopan3322 于 2011-03-24 12:20 编辑

diff -rub dir1 dir2
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP