Respostas:
Use a -o
bandeira entre diferentes parâmetros.
find ./ -type f \( -iname \*.jpg -o -iname \*.png \)
Funciona como um encanto.
NOTA Não deve haver um espaço entre o suporte e seu conteúdo ou não vai funcionar.
Explicação:
type -f
- procure apenas arquivos (não diretórios)\(
- necessário para type -f
aplicar a todos os argumentos-o
- operador OR lógico-iname
- tipo -name
, mas a correspondência não diferencia maiúsculas de minúsculastype -f
não se estende e se aplicam a ambas as expressões sem os parênteses, assim, find ./ -type f -iname \*.jpg -o -type f -iname \*.png
também funciona ... embora seja dois caracteres mais :-)
a * b + c
é diferente dea * (b + c)
Você pode combinar critérios com -o
como sugerido por Shadur . Observe que a -o
precedência é menor que a justaposição; portanto, você pode precisar de parênteses.
find . -name '*.jpg' -o -name '*.png'
find . -mtime -7 \( '*.jpg' -o -name '*.png' \) # all .jpg or .png images modified in the past week
No Linux, você pode usar -regex
para combinar extensões de uma maneira terser. A sintaxe padrão do regexp é o Emacs ( regexps básicos mais algumas extensões, como \|
por alternância); existe uma opção para mudar para regexps estendidos .
find -regex '.*\.\(jpg\|png\)'
find -regextype posix-extended -regex '.*\.(jpg|png)'
No FreeBSD, NetBSD e OSX, você pode usar -regex
combinado com -E
regexps estendidos.
find -E . -regex '.*\.(jpg|png)'
-iname
em vez de -name
- então você também irá capturar image.JPG
eimage.PnG
Isso é mais correto:
find . -iregex '.*\.\(jpg\|gif\|png\|jpeg\)$'
-iregex
combina jpg
bem JPG Jpg jpG
e tal. Eu acho que $
não é necessário.
find -E . -iregex '.*\.(jpg|png|gif)'
como mostrado na resposta de @ sorin.
Para deixar claro, a única opção que funciona no Linux, Unix e macOS é:
find -E . -regex '.*\.(jpg|png)'
Isso ocorre porque a versão do OS X é um pouco diferente, mas é importante escrever coisas que vão bem na maioria das plataformas.
-type f \( -iname \*.png -o -iname \*.jpg\)
não funciona no OSX?
find -name
padrão que corresponde a vários padrões no SO