С зш:
cd -P -- "$dir"
for i (**/*(ND@)) [[ $i:A = $PWD/* ]] || [[ $i:A = $PWD ]] || print -r -- "$i => $i:A"
Теперь, если каталог есть, /fooи у вас есть /foo/barсимволическая ссылка /foo/baz, это ссылка, цель которой находится в / foo, но после перемещения ссылка все равно будет разорвана, поэтому вы можете также захотеть сопоставить символические ссылки с абсолютными путями.
Но даже bar => ../foo/bazв /fooэтом случае проблема может быть связана с ошибкой (ложноотрицательным), а символическая ссылка a => bwhere bвне дерева (ложно-положительная, в зависимости от того, как вы хотите на нее смотреть)