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