web-dev-qa-db-fra.com

rechercher des fichiers avec le suffixe org ou md

Je voudrais trouver tous les suffixes de fichiers avec .md ou .org

find ~ -iregex ".*\.md$"
find ~ -iregex ".*\.org$"

Comment pourrait-on les combiner?

3
Calculus
find ~ -regextype egrep -iregex ".*\.(md|org)"

Examinez les documents de l'option regextype pour voir les types d'expressions régulières pris en charge. Les egrep, posix-extended et peut-être que d'autres comprennent les groupes/alternatives entre parenthèses.

4
Velkan

Concaténez simplement votre recherche comme le dit --- answer :

find ~ -name "*.md" -o -name "*.org"

Explication:

  • -name ferait la recherche récursivement (supprimez-la si vous ne voulez pas que les sous-répertoires résultent)
  • -o option représente un opérateur [~ # ~] ou [~ # ~] (il exécuterait les deux commandes même s'il n'y a pas de .md fichier)
  • ~ est le chemin où vous souhaitez démarrer l'exécution de find; ici, vous commencez à ~ (donc /home/useruser est votre nom d'utilisateur)

P.S: si vous souhaitez utiliser (), vous devez utiliser le caractère d'échappement \ comme ça :

find ~ \( -name "*.md" -o -name "*.org" \)

Ces deux commandes fonctionnent, mais la première est suffisante dans ce cas.

P.P.S: au cas où vous voudriez trouver des fichiers qui auraient ces extensions avec des majuscules, utilisez le -iname option au lieu de -name option, comme ça:

find ~ -iname "*.md" -o -iname "*.org"

Vous pourriez trouver des fichiers nommés comme README.MD par exemple, qui ne sont pas affichés avec le -name option

5
damadam