Остерегайтесь: если нет имен, соответствующих маске, bash передает аргумент as-is без расширения!
Proof (pa.py - очень простой скрипт, который просто печатает свои аргументы):
$ ls
f1.cc f2.cc pa.py
$ ./pa.py *.cc
['./pa.py', 'f1.cc', 'f2.cc']
$ ./pa.py *.cpp
['./pa.py', '*.cpp']