0 votos

Encontrar varios archivos a la vez a través de la Terminal

Tengo una lista de filnames como este:

P1020804.JPG
P1020805.JPG
P1020806.JPG
P1020807.JPG
P1020808.JPG

Cómo encontrar a todos ellos por una sola consulta en el centro de atención, Terminal, mdfind o localizar?

3voto

user3439894 Puntos 5883

Voy a asumir que su lista es sólo un representante de la lista y los nombres de los archivos de seguir ese patrón y en realidad puede ser más exacta de los nombres de archivo. Así, el uso de expresiones regulares extendidas va a ser usado para encontrar los archivos que coincidan con el patrón que se muestra en el ejemplo de los nombres de archivo en su OP.

find -E . -regex '.*\/P[0-9]{7}\.JPG'
  • -E Interpretar expresiones regulares seguido por -regex y -iregex primarias como extendida (moderno) expresiones regulares en lugar de básica de las expresiones regulares (BRE). El re_format(7) página de manual describe por completo en ambos formatos.
  • . Busca en el directorio actual y sus subdirectorios.
  • -regex pattern True si la ruta de acceso completa del archivo coincide con el patrón de uso de la expresión regular.
  • .*\/P[0-9]{7}\.JPG
    • .* coincide con cualquier carácter (excepto para los terminadores de línea).
    • * Cuantificador - Partidos entre cero y un número ilimitado de veces, tantas veces como sea posible, dándoles la espalda como sea necesario (codicioso).
    • \/ coincide con el carácter / literalmente (mayúsculas y minúsculas).
    • P coincide con el carácter P literalmente (mayúsculas y minúsculas).
    • [0-9] coincidir con un único personaje presente en la lista.
    • {7} Cuantificador - Coincide exactamente 7 veces, 0-9 a un único carácter en el rango de entre 0 (índice 48) y 9 (índice 57) (mayúsculas y minúsculas).
    • \. coincide con el carácter . literalmente (mayúsculas y minúsculas).
    • JPG coincide con los caracteres JPG literalmente (mayúsculas y minúsculas).

$ find -E . -regex '.*\/P[0-9]{7}\.JPG'
./Pictures/P1020799.JPG
./Pictures/P1020800.JPG
./Pictures/P1020801.JPG
./Pictures/P1020802.JPG
./Pictures/P1020803.JPG
./Pictures/P1020804.JPG
./Pictures/P1020805.JPG
./Pictures/P1020806.JPG
./Pictures/P1020807.JPG
./Pictures/P1020808.JPG
./Pictures/P1020809.JPG
./Pictures/P1020810.JPG
$

Nota: El . es el directorio de trabajo actual, que, por defecto, si usted acaba de abrir Terminal será su directorio de Inicio. Si los archivos están en otro lugar puedes usar una partida diferente ruta, por ejemplo / se inicia en la root de la Macintosh HD, (suponiendo que de nomenclatura predeterminado). Como se puede ver en el ejemplo de salida el objetivo de ficheros encontrados por la expresión regular de patrón estaban en la carpeta mis Imágenes.

1voto

Andy Puntos 193

Intente esto:

find . -name 'P1020804.JPG' -o -name 'P1020805.JPG' -o -name 'P1020806.JPG'

Recuerde que . es necesario.

1voto

Michael Zhou Puntos 167
find . \( -name P1020804.JPG -o \
          -name P1020805.JPG -o \
          -name P1020806.JPG -o \
          -name P1020807.JPG -o \
          -name P1020808.JPG \)

find en el directorio actual- . y sub-directorios, el nombre de archivo o el nombre del siguiente archivo... y así sucesivamente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X