I am trying to use find (or a similar tool, I also really like fd)
to locate directories matching the query
only those directories which are the deepest match
the target directories are not all the same depth, so
-maxdepthor-mindepthcan't do itit would be the opposite of
-prune
Given the below directory tree, looking for directories with "red" in the name, the ones with Yes should be the matches:
$ tree
.
├── blue = n
├── green = n
│ ├── red-apple = Yes
│ └── red-book = n
│ └── red-pen = Yes
├── red = n
│ └── red-strawberry = Yes
│ └──
└── yellow = n
└── basket = n
├── flag = n
│ └── red = Yes
└── painted-red = Yes
└── wagon = n
So "red-book" does not match because it contains a subsequent match ("red-pen"). But it's OK to have a deeper non-matching directory (like "painted-red").
This is my basic command which finds 2 unwanted items:
$ find . -type d -name "*red*"
./green/red-apple
./green/red-book
./green/red-book/red-pen # wrong
./yellow/basket/flag/red
./yellow/basket/red
./red # wrong
./red/red-strawberry
Did you ever figure this out? I screwed around for a couple of minutes, and the closest I could get was:
I'm not really sure if that's what you were trying to do. I'm pretty sure my try is far from robust.
save