¿Estoy intentando averiguar cómo realizar búsquedas de comodines para nombres de archivos con mdfind en OsX? Intenté: mdfind -name "*.pdf"
pero no funcionó.
EDITAR: quiero poder encontrar nombres como "test * .pdf"
¿Estoy intentando averiguar cómo realizar búsquedas de comodines para nombres de archivos con mdfind en OsX? Intenté: mdfind -name "*.pdf"
pero no funcionó.
EDITAR: quiero poder encontrar nombres como "test * .pdf"
Esto debería funcionar:
mdfind "kMDItemDisplayName == test*.pdf"
Encierre el patrón entre comillas simples y agregue 'c' para que coincida con mayúsculas y minúsculas:
mdfind "kMDItemDisplayName == 'test*.pdf'c"
Aquí hay una lista de atributos disponibles. Puede combinar varios pares de atributo / valor con &&
.
Al buscar explícitamente el archivo nombres , mi experiencia es que el atributo kMDItemFSName
proporciona resultados más concisos. Otra sugerencia: agregue el modificador de comparación d
(insensible a las marcas diacríticas), por ejemplo. haga coincidir un archivo llamado "Entrée Menu.pdf" cuando busque "entrante" :
mdfind 'kMDItemFSName == "*entree*"cd'
También, dado que el enlace de @ tcmb a la referencia de atributos está muerto, aquí hay dos que funcionan: Atributos de metadatos de Spotlight y iCloud Atributos de metadatos .
macOS se envía con el comando regular find
, y mdfind
no reemplaza a find
.
Si realmente solo desea buscar en el directorio actual todos los archivos pdf, probablemente debería hacer find . -name '*.pdf'
Por defecto, mdfind
busca por metadatos y contenido de archivos, y busca en todo su disco duro en lugar de en un solo directorio: en mi sistema mdfind pdf
encuentra decenas de miles de resultados.
Si debe usar mdfind, porque es más rápido, tiene algunas opciones para limitar los resultados, por ejemplo:
mdfind pdf -onlyin .
mdfind 'kMDItemFSName = *.pdf' -onlyin .
mdfind 'kMDItemContentTypeTree = *.pdf' -onlyin .
Use mdls
para conocer qué metadatos están disponibles para un archivo, y la sintaxis para la coincidencia de patrones es muy minimalista, ya que debe coincidir con el índice de la base de datos de su sistema de archivos.
Alternativamente, puede mdfind
con grep
, dando la velocidad de mdfind
y la coincidencia completa de expresiones regulares en la ruta del archivo. Por ejemplo:
mdfind pdf -onlyin . | grep 'pdf$'
Una advertencia final es que mdfind
no busca en su sistema de archivos real, solo busca en la base de datos de Spotlight que puede faltar en partes del sistema de archivos o ser inexacta. Use find
si requiere resultados confiables. Utilice mdfind
cuando requiera velocidad sobre la precisión y cuando necesite términos de búsqueda complicados (por ejemplo, busque todos los archivos pdf que se crearon dentro de un rango de fechas específico y contienen una frase de texto).