我有许多文件存储在目录A
中。
其中一些文件存在于带有子目录B/B1
,B/B2
,B/B3
,B/B4
等的目录树中。
请注意,一些文件名中含有空格。
例如:
在目录A
中:
有一个名为
A/red file.png
的文件还有另一个名为
A/blue file.png
的文件并且在目录树
B
中:有一个名为
B/small/red file.png
的文件在这个例子中,我想要一个脚本告诉我,在目录树
B
下没有找到文件blue file.png
。
我怎样编写一个脚本,可以列出所有在目录A
中但在目录树B
下找不到的文件?
comm -23 <( find A -type f -exec basename {} \; | sort | uniq ) <( find B -type f -exec basename {} \; | sort | uniq )
- Thedward-exec
选项在每个匹配的文件上运行一个命令,{}
将被替换为文件路径,并以分号终止命令。在分号之前加上反斜杠是为了防止 shell 将其解释为 shell 语法。 - Thedward