On 2020-04-12 21:12, Peng Yu wrote:
> OK. So this will make sure `/d1/d2/d3` will not be searched multiple
> times? Or it is still searched when `/d1/d2`, `/d1` or `/` is
> searched?
Well, it's easy to go up the tree and using the -prune option
to omit the already searched directories.
---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
#!/bin/sh
f="$1" \
&& test -n "$f" \
|| { echo "Usage: $0 FILE" >&2; exit 1; }
# Search in current directory.
p="$( pwd )"
find -H "$p" -name "$f" -ls -quit \
| grep . && exit 0;
# Search in all parent directories until the '/' root directory,
# using -prune to omit the already searched subdirectory.
while subdir="$p" && [ "$subdir" != '/' ] && p="$( dirname "$p" )"; do
find -H "$p" -path "$subdir" -prune -o -name "$f" -ls -quit \
| grep . && exit 0;
done
echo "$0: not found: '$f'" >&2
exit 1
--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8---
Have a nice day,
Berny