Dans bash, le shell ls
peut utiliser une fonctionnalité logique OU (bien sûr, je pourrais aussi le faire, ls name1 name2
mais mes vrais exemples sont plus compliqués):
ls @(name1|name2)
Existe-t-il un moyen de le faire en utilisant find
?
Ma mise en œuvre naïve:
find . -maxdepth 1 -name @("name1"|"name2")
ne fonctionne pas (il ne produit rien)
OPERATORS
section de lafind
page de manuel?Réponses:
Vous pouvez utiliser
-o
pour logiqueOR
. Attention cependant, tous lesfind
prédicats ont des valeurs logiques, vous devrez donc généralement regrouper lesOR
éléments avec des parenthèses. Et puisque les parens ont également une signification pour le shell, vous devrez également leur échapper:la source
Pour répondre à votre question, vous pouvez utiliser l'
-o
option:comme ça:
la source