Risposte:
Usa il -oflag 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 -fapplicazione a tutti gli argomenti-o - operatore logico OR-iname- Mi piace -name, ma la corrispondenza non distingue tra maiuscole e minuscoletype -fnon si estende e si applica ad entrambe le espressioni senza le parentesi, quindi find ./ -type f -iname \*.jpg -o -type f -iname \*.pngfunziona anche ... anche se è più lungo di due caratteri :-)
a * b + cè diverso daa * (b + c)
Puoi combinare i criteri con -oquelli suggeriti da Shadur . Nota che -oha 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 -regexper 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 -regexcombinato con -Eregexps estesi.
find -E . -regex '.*\.(jpg|png)'
-inameinvece di -name- quindi anche catturare image.JPGeimage.PnG
Questo è più corretto:
find . -iregex '.*\.\(jpg\|gif\|png\|jpeg\)$'
-iregexpartite jpgcosì come JPG Jpg jpGe 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 -namemodello che corrisponde a più modelli a SO