这是我的树
├── test
│ ├── dir1
│ └── dir2
│ ├── file
│ └── file2
└── test2
└── dir2
├── file
└── file2
我使用diff
:diff -r test/ test2/
Only in test: dir1
唯一的区别是dir1
中有一个空目录(test/
),test2/
中不存在。
我想忽略空目录。所以我想在这种情况下,diff告诉我test/
的内容与test2/
的内容相同
我怎样才能做到这一点?
答案 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