You can't take the quotes out entirely, Alunduil, as the shell will then expand the "*" in the wrong way.
The use of $() is irrelevant, MTK358, so just stop harping on about it.
@Andre : The reason your modification of my advice didn't work is that by quoting the "-lname" in with the "*" you have merged them into a single entity. You
NEED the "*" to be a single, quoted entity (not single-quoted, though) so that the shell doesn't expand it (and thus leaves a wild card for find to work with) but you
MUST NOT merge it with the "predicate" (the rule "-lname") otherwise the expression is not one of the valid rules.
Using the "set -f" to avoid wildcard expansion is acceptable, but like you I find it ugly. I would strongly recommend NOT including "-lname" in your $Directory variable, as it's not part of the pattern anyway so logically it's misleading to have it there.
Code:
Directory="*"
for i in $(find . -lname "${Directory}");do
echo $i
done