GNU/Linux >> Tutoriels Linux >  >> Linux

Trouver récursivement des fichiers avec une extension spécifique

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

Linux
  1. Omettre l'extension avec Find ?

  2. Trier les fichiers dans un dossier spécifique avec Ranger ?

  3. Comment masquer les fichiers avec une extension spécifique ?

  4. Comment supprimer des fichiers avec une extension spécifique dans la ligne de commande Linux

  5. Comment rechercher tous les fichiers avec une taille de fichier de zéro (0) octet dans un répertoire de manière récursive

Commande de recherche Linux avec des exemples pratiques

Retrouver les fichiers perdus avec Scalpel

Comment supprimer des fichiers avec une extension spécifique sous Linux

Comment copier des fichiers avec une extension de fichier spécifique de manière récursive

Comment exclure une extension de fichier spécifique lors de la copie récursive de fichiers

Comment puis-je copier récursivement des fichiers par extension de fichier, en préservant la structure des répertoires ?