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 it -
it 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
You must log in or register to comment.

