Unix 命令用于查找一个目录中的文件,但不查找另一个目录中的文件?

Unix 命令用于查找一个目录中的文件,但不查找另一个目录中的文件?

哪个 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 都不应包含尾随斜杠。

相关内容