Je voudrais trouver tous les suffixes de fichiers avec .md
ou .org
find ~ -iregex ".*\.md$"
find ~ -iregex ".*\.org$"
Comment pourrait-on les combiner?
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.
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/user
où user
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