我有一个目录树,如下所示。 换句话说,根目录包含多个具有任意名称的子目录。每个文件夹可能包含两个文件夹:“确定”和“不确定”。这些文件夹包含归类为“快乐”或“悲伤”的图像,这由其名称反映出来。
root/
dir0/
OK/
img_happy_001.png
img_happy_002.png
img_sad_001.png
...
NotOK/
img_happy_103.png
img_happy_104.png
img_sad_72.png
...
dir1/
OK/
img_happy_501.png
img_sad_233.png
...
NotOK/
img_happy_703.png
img_happy_704.png
img_sad_298.png
...
...
通过
我可以轻松找到所有归类为“快乐”的图像。find . -name "*happy*.png"
但是,我想找到“确定”目录中所有归类为“快乐”的图像。我怎样才能做到这一点?
答案 0 :(得分:1)
我使用
获得了预期的结果find . -type d -name "OK" -exec find {} -name "*happy*" \;
答案 1 :(得分:1)
您可以简单地将find中的结果通过管道传递到grep:
find . -name "*happy*.png" | grep -v NotOK
grep
命令将过滤find
中不包含NotOK
的结果。
或者,您可以在find中查看--whole-name
选项。
我相信您将需要以下内容:
find . -name "*happy*.png" -wholename "\*/OK\*"