Look into using 'du'
It displays file sizes for all files/directories in the current directory and all sub-directories.
For each file/directory, you'll get an output line something like:
48 ./filename
The 48 indicates the file size. I believe that it defaults to outputting the size in blocks or something like that, but there are command line options to adjust that.
On my system (linux), -b outputs bytes and -h outputs 'human readable' (ie 50Mb).
I think what you want to do is call du and pipe the output thru grep.
du -b | grep "^500000000000"
The ^ indicates that the number must be the first thing on the line. Adjust the number according to the size you are looking for.