well this is clearly nothing to do with find itself.
You can reduce it to this:
Code:
if [ -e ]
then
echo "file exist"
fi
and that "works", which I don't understand. I suppose you could say that "nothing" does exist, but it's a bit philosophical really!
don't use [ ], under bash, use [[ ]] instead and you'll have a better time in general as [ is the test binary, whilst [[ is a bash built in, so it *KNOWS* about the NAME variable you have there, like a normal perl / c program would, but [ / test just sees if after string substitutiong have occurred. Alternatively, if you do use [, ALWAYS put your variables in double quote marks.