哪个 unix 命令可以查找直接位于一个目录中但不位于另一个目录中的文件?我只关心文件名。
谢谢。
答案1
我假设您想从更高级别的目录执行此搜索。如果是这样,您可以使用-path
带 的选项find
。
例如,给定下面的目录结构
+---dir1/test1.txt
|
|--dir2/test1.txt
在 dir1 中查找与 'test*' 匹配的文件
find -path '*dir1*' -iname 'test*'
答案2
要比较两个目录,你可以使用以下命令:
diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort)
要仅以一种方式执行此操作并生成文件列表,请尝试以下操作:
diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort) \
| grep '< ./' | sed "s,< ./,$dir1/,"
为了使其正常工作,$dir1 和 $dir2 都不应包含尾随斜杠。