假设我有一个包含许多子目录的目录,每个子目录中都包含许多文件.我想检查哪些目录不包含特定文件.例如,如果这些是我的目录:
dir/A:
foo
bar
dir/B:
bar
dir/C:
foo
dir/D:
dir/E:
foo
bar
Run Code Online (Sandbox Code Playgroud)
如果我想列出所有不包含的目录foo,我会得到:
dir/B
dir/D
Run Code Online (Sandbox Code Playgroud)
是否可以使用unix执行此操作find,还是需要使用某些备用工具?
经过一番研究后,我找到了一个很好的解决方案:
find . -type d \! -exec test -e '{}/foo' \; -print
在哪里替换foo您正在寻找的任何文件.
这将打印出所有目录的列表,这些目录不包含您要查找的任何文件.