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