Puedo obtener todas las jpgimágenes usando:
find . -name "*.jpg"
Pero, ¿cómo puedo agregar pngarchivos a los resultados también?
find
regular-expression
wong2
fuente
fuente

find -namepatrón que coincide con múltiples patrones en SORespuestas:
Use la
-obandera entre diferentes parámetros.find ./ -type f \( -iname \*.jpg -o -iname \*.png \)Funciona de maravilla.NOTA No debe haber un espacio entre el soporte y su contenido o no va a funcionar.
Explicación:
type -f- solo busca archivos (no directorios)\(- necesario paratype -fque se aplique a todos los argumentos-o- operador lógico OR-iname- como-name, pero el partido no distingue entre mayúsculas y minúsculasfuente
type -fno se extiende y se aplica a ambas expresiones sin paréntesis, por lo tanto,find ./ -type f -iname \*.jpg -o -type f -iname \*.pngtambién funciona ... aunque son dos caracteres más largos :-)a * b + ces diferente dea * (b + c)Puede combinar criterios
-osegún lo sugerido por Shadur . Tenga en cuenta que-otiene una precedencia menor que la yuxtaposición, por lo que puede necesitar paréntesis.En Linux, puede usar
-regexpara combinar extensiones de una manera más tersa. La sintaxis regexp predeterminada es Emacs ( expresiones regulares básicas más algunas extensiones como la\|alternancia); hay una opción para cambiar a expresiones regulares extendidas .En FreeBSD, NetBSD y OSX, puede usar
-regexcombinado con-Eexpresiones regulares extendidas.fuente
-inamelugar de-name- luego también capturaráimage.JPGyimage.PnGEsto es más correcto:
fuente
-iregexcoincidejpgtanto comoJPG Jpg jpGy tal. Creo que$no se necesita.find -E . -iregex '.*\.(jpg|png|gif)'como se muestra en la respuesta de @ sorin.Para que quede claro, la única opción que funciona en Linux, Unix y MacOS es:
Esto se debe a que la versión de OS X es un poco diferente, pero es importante escribir cosas que funcionen bien en la mayoría de las plataformas.
fuente
-type f \( -iname \*.png -o -iname \*.jpg\)no funciona en OSX?Úsalo.
fuente