Один из способов сделать это:
#! /bin/sh
dir=$(pwd -P)
while [ -n "$dir" -a ! -f "$dir/$1" ]; do
dir=${dir%/*}
done
if [ -f "$dir/$1" ]; then printf '%s\n' "$dir/$1"; fi
Замените pwd -P
на pwd -L
, если вы хотите следовать символическим ссылкам вместо проверки физических каталогов.