@"M Ohem" is right. You can use: ./filename *.pdb.
But you need to keep in mind that command line length limit differs from system to system link. It can be checked as: xargs --show-limits.
Output on my Ubuntu 14.04
xargs --show-limits
Your environment variables take up 3140 bytes
POSIX upper limit on argument length (this system): 2091964
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2088824
Size of command buffer we are actually using: 131072
So, if cumulative sum of file name length of 30,000 pdb files(you need to consider spaces) can be accommodated in your systems command line length limit you are good to go with mentioned solution.
Otherwise, if you have flexibility to pass each file independently to you binary then you can write a separate script where you can call your binary each time for each file.
for file in `ls -1 *.pdb`
do
./filename $file
done