0 votos

es thre una forma de encontrar archivos recientes con locate O actualizar automáticamente la base de datos cada vez que se crea un archivo

Estoy en MacOS Catalina. locate es un gran comando pero desafortunadamente, Tengo dificultades para encontrar archivos que han sido creados, por ejemplo, hace una hora o hace diez minutos.

Parece que podría evitar este problema actualizando la base de datos con una frecuencia mayor que cada 24 horas.

Pero el otro problema es que, cuando lanzo el comando /usr/libexec/locate.updatedb en root, dura mucho tiempo antes de que este comando termine.

Así que concluyo que update reconstruye completamente la base de datos y no actualiza sólo los nuevos archivos creados desde el último locate.updateb ejecución : efectivamente, esto supondría una gran ganancia de tiempo si el comando no estuviera reconstruyendo toda la base de datos con todos los archivos del sistema.

Por último, pienso en una estrategia sencilla : modidy /System/Library/LaunchDaemons/com.apple.locate.plist para forzarlo a actualizar, por ejemplo, la base de datos cada 5 minutos. Pero si el comando /usr/libexec/locate.updatedb reconstruye toda la base de datos cada 5 minutos, esto no tiene sentido.

Por ello, me gustaría recibir opiniones de personas que tengan este tipo de problema y cómo lo han resuelto. Prefiero evitar el uso del comando mdfind pero si no hay una solución disponible con localización y no la posibilidad de no tener que reconstruir todo el contenido cada vez (en mi caso, esto sería cada cinco minutos), me vería obligado a cambiar a mdfind .

Por cierto, un simple crontab lanzando cada 5 minutos el comando /usr/libexec/locate.updatedb también está permitido, ¿no?

También podría aconsejarme que utilice find con -mtime pero el hallazgo es muy lento (asociado a parallel Puede ser una alternativa, no lo sé, en realidad, soy un locate ya que lo he utilizado mucho en Linux).

Cualquier pista/observación/respuesta es bienvenida,

Saludos

0 votos

Para ofrecer quizás una solución alternativa a su problema, ¿cuál es su caso de uso real aquí? ¿Por qué quiere saber qué archivos se han creado más recientemente?

1 votos

Parece que estás tratando de reinventar el sistema de indexación de archivos Spotlight de Apple; ¿por qué no utilizar Spotlight a través de la mdfind ¿comando?

0 votos

La localización de semillas para un directorio pequeño podría ser factible, pero spotlight es el camino a seguir, aunque haya que ajustarlo o aprender a buscar por nombre...

3voto

Tom Harrington Puntos 187

Prefiero evitar el uso del comando mdfind

¿Por qué? Resuelve su problema sin ningún trabajo adicional. Conseguir locate para hacer la actualización constantemente va a mantener su Mac ocupado escaneando todo el disco duro casi todo el tiempo. Mientras tanto,

mdfind -name filename.txt

Producirá el mismo resultado sin ningún trabajo extra por tu parte o por parte de tu Mac. Como MacOS mantiene Spotlight actualizado automáticamente, esto encontrará los archivos inmediatamente después de su creación. Incluso puede utilizar un shell muy corto script como este:

#!/bin/sh

if [ "$1" ==  "" ]; then
    echo What files do you want to find?
else
    mdfind -name $1
fi

Entonces, el alias locate o algún otro comando para llamar al script.

0 votos

1) mdfind es genial, excepto que no busca en algunos lugares, especialmente en ~/Library/ que es donde se almacenan los documentos en iCloud. 2) Otro buen uso de mdfind es mdfind -onlyin "$PWD" -name FOO para cuando quieras encontrar un archivo llamado "FOO" en una carpeta o subcarpeta del directorio actual.

0 votos

Sí que busca en esos lugares, por nombre de archivo al menos. Eso es lo que locate lo haría, así que funciona para esta pregunta. Si utiliza mdfind -name con el nombre de un archivo en iCloud Drive, encontrará coincidencias en ~/Library/Mobile Documents/com~apple~CloudDocs/ .

1voto

Joel Puntos 112

Parece que prefieres una solución CLI. Soy un usuario frecuente de la CLI en MacOS, pero todos debemos vivir con el hecho de que Apple no actualiza muchas de sus herramientas de línea de comandos. Por ejemplo, en mi Macbook Pro corriendo Mojave, el locate no admite el --version argumento, pero man locate tiene una fecha en la parte inferior que fue hace unos 14 años. Por lo tanto, el locate herramienta en Catalina no es lo mismo locate que ha utilizado en Linux.

Dicho esto, mi "respuesta" es más bien una sugerencia para que considere la posibilidad de utilizar la función de "carpeta inteligente" en Finder . Permite filtrar una variedad de tipos de archivos y carpetas, y mostrarlos en Finder de la barra lateral. Puede que esto se ajuste a tus necesidades, o puede que no. En cualquier caso, ya sabes que la barra lateral de Catalina locate herramienta ya es bastante antigua.

Como mi respuesta se sale del tema, no me extenderé más, pero hay algunos "Guías de uso de las carpetas inteligentes disponibles en Internet si te interesa.

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