使用diff并忽略空目录

5
这是我的树。
├── test
│   ├── dir1
│   └── dir2
│       ├── file
│       └── file2
└── test2
    └── dir2
        ├── file
        └── file2

我使用 `diff` 命令:`diff -r test/ test2/`。
Only in test: dir1

所以唯一的区别在于test/中有一个空目录(dir1),而在test2/中不存在。
我想忽略空目录的差异。所以在这种情况下,我希望diff告诉我test/的内容与test2/的内容相同。
我该如何实现这一点?
1个回答

1
我找到了一种方法,但我并不是很满意。 diff可以被告知排除匹配模式的文件。遗憾的是,该模式仅适用于文件名,因此我的解决方案可能会排除比预期更多的目录(以及文件)
以下是它,供参考:
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接