If all of the symbolic link targets are absolute, you can do something like this:
find /folder/tree -type l -not -lname '/folder/tree/*' -print
However, if you have any relative links in your tree, especially those with ./
or ../
embedded in the target paths, you'll probably need to loop through each one to normalize the target, and then see if it matches the folder tree:
find /folder/tree -type l -print | \
while read symlink
do
target=$(readlink -f "$symlink")
expr match "$target" "^/folder/tree/.*" >/dev/null || echo "$symlink"
done
# end of pipeline
Both do the same thing, which is to print each symbolic link that has a target not matching /folder/tree
.