Risposte:
Usa il -o
flag tra diversi parametri.
find ./ -type f \( -iname \*.jpg -o -iname \*.png \)
funziona come un fascino.
NOTA Ci deve essere uno spazio tra la staffa e il suo contenuto o non funzionerà.
Spiegazione:
type -f
- cerca solo file (non directory)\(
- necessario per l' type -f
applicazione a tutti gli argomenti-o
- operatore logico OR-iname
- Mi piace -name
, ma la corrispondenza non distingue tra maiuscole e minuscoletype -f
non si estende e si applica ad entrambe le espressioni senza le parentesi, quindi find ./ -type f -iname \*.jpg -o -type f -iname \*.png
funziona anche ... anche se è più lungo di due caratteri :-)
a * b + c
è diverso daa * (b + c)
Puoi combinare i criteri con -o
quelli suggeriti da Shadur . Nota che -o
ha una precedenza inferiore rispetto alla giustapposizione, quindi potresti aver bisogno di parentesi.
find . -name '*.jpg' -o -name '*.png'
find . -mtime -7 \( '*.jpg' -o -name '*.png' \) # all .jpg or .png images modified in the past week
Su Linux, puoi usare -regex
per combinare le estensioni in un modo più terser. La sintassi regexp predefinita è Emacs ( regexps di base più alcune estensioni come \|
per l'alternanza); c'è un'opzione per passare a regexps estesi .
find -regex '.*\.\(jpg\|png\)'
find -regextype posix-extended -regex '.*\.(jpg|png)'
Su FreeBSD, NetBSD e OSX, puoi usare -regex
combinato con -E
regexps estesi.
find -E . -regex '.*\.(jpg|png)'
-iname
invece di -name
- quindi anche catturare image.JPG
eimage.PnG
Questo è più corretto:
find . -iregex '.*\.\(jpg\|gif\|png\|jpeg\)$'
-iregex
partite jpg
così come JPG Jpg jpG
e simili. Penso che $
non sia necessario.
find -E . -iregex '.*\.(jpg|png|gif)'
come mostrato nella risposta di @ sorin.
Per chiarire, l'unica opzione che funziona su Linux, Unix e macOS è:
find -E . -regex '.*\.(jpg|png)'
Questo perché la versione di OS X è leggermente diversa, ma è importante scrivere cose che vadano bene sulla maggior parte delle piattaforme.
-type f \( -iname \*.png -o -iname \*.jpg\)
non funziona su OSX?
find -name
modello che corrisponde a più modelli a SO