使用diff并忽略空目录

时间:2017-05-24 10:34:04

标签: diff

这是我的树

├── test
│   ├── dir1
│   └── dir2
│       ├── file
│       └── file2
└── test2
    └── dir2
        ├── file
        └── file2

我使用diffdiff -r test/ test2/

Only in test: dir1

唯一的区别是dir1中有一个空目录(test/),test2/中不存在。

我想忽略空目录。所以我想在这种情况下,diff告诉我test/的内容与test2/的内容相同

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

我找到了一种方法,但我对此并不满意。

可以告诉

diff排除与模式匹配的文件。遗憾的是,该模式仅适用于文件名,因此我的解决方案可能会排除比预期更多的目录(和文件)

在这里,fwiw:

diff $(find test -empty -type d -exec sh -c 'echo -n "-x $(basename $1) "' _ {} \;) -r test/ test2/

我添加了以下命令

find test -empty -type d -exec sh -c 'echo -n "-x $(basename $1) "' _ {} \;)

输出diff的排除选项 -x 之前的每个空目录的基名。使用您的示例树,它将输出: -x dir1