Utilisation de find est -regex argument :
find . -regex '.*/Robert\.\(h\|cpp\)$'
Ou simplement en utilisant -name :
find . -name 'Robert.*' -a \( -name '*.cpp' -o -name '*.h' \)
find -name "*Robert*" \( -name "*.pdf" -o -name "*.jpg" \)
Le -o représente un OR condition et vous pouvez en ajouter autant que vous le souhaitez dans les accolades. Cela signifie donc de rechercher tous les fichiers contenant le mot "Robert" n'importe où dans leur nom et dont les noms se terminent soit par "pdf" soit par "jpg".
Comme alternative à l'utilisation de -regex option sur find , puisque la question est intitulée bash, vous pouvez utiliser le mécanisme d'expansion des accolades :
eval find . -false "-o -name Robert".{jpg,pdf}
Ma préférence :
find . -name '*.jpg' -o -name '*.png' -print | grep Robert