这部分内容已由比较两个目录的内容但我对这个问题有一点小小的改变。
我有目录 Dir1 和 Dir2。它们的子目录结构应该相同,这是我想要检查的。但我还想检查其中的文件。它们应该具有相同的文件名,但 Dir1 中的每个文件都有扩展名 .type1,而 Dir2 中的每个文件都有 .type2。当我使用上面链接的解决方案时,Dir1/bob/file.type1 和 Dir2/bob/file.type2 被视为不同。
如何使上面链接的解决方案对扩展视而不见?
答案1
就像是
diff <(cd Dir1 && find . | sort | sed 's/\.type1$//') <(cd Dir2 && find . | sort | sed 's/\.type2$//')
可能是一个解决方案。
该命令将隐藏.type1
两个.type2
目录中的扩展,因此它们不会影响diff
。
这是一个简单的例子:
user@hostname:/tmp/test-diff$ find Dir* | sort
Dir1
Dir1/file1.type1
Dir1/file3.type1
Dir2
Dir2/file2.type2
Dir2/file3.type2
Dir2/file4.type2
该diff
命令将突出显示file1
在Dir1
(<
)中,但不在Dir2
以及file2
和file4
在Dir2
(>
)中,但不在Dir1
user@hostname:/tmp/test-diff$ diff <(cd Dir1 && find . | sort | sed 's/\.type1$//') <(cd Dir2 && find . | sort | sed 's/\.type2$//')
2c2
< ./file1
---
> ./file2
3a4
> ./file4