1 votos

¿Hay alguna forma de hacer que mdfind (la línea de comandos de spotlight) encuentre enlaces simbólicos?

Utilizo mdfind extensivamente para buscar archivos en mi sistema de archivos porque es mucho más rápido que find . En este caso, buscaba README.md archivos.

Pero hoy me acabo de dar cuenta de que me faltaban algunos archivos porque en realidad eran enlaces simbólicos.

Le pondré un ejemplo:

rm -rf test
mkdir test
cd test
touch foo.md bar.md test.txt test2.txt
ln -s test2.txt zoom.md
cd ..

OK, ahora si tree ya veo:

test
 bar.md
 foo.md
 test.txt
 test2.txt
 zoom.md -> test2.txt

y utilizando find test -name "*.md" :

test/bar.md
test/foo.md
test/zoom.md

pero mdfind -onlyin test -name md no coincide con el enlace simbólico zoom.md :

..../test/test/foo.md
..../test/test/bar.md

En este parece que si se especifica "kMDItemContentType == public.symlink" podría ayudar. No ayudó.

Busqué un poco más por kMDItemContentType en línea, pero Apple por alguna razón no proporciona casi ninguna documentación sobre mdfind uso avanzado.

1voto

user43889 Puntos 266

El índice Spotlight (utilizado por mdfind ) indexa archivos y carpetas. Pero un enlace simbólico no es un archivo. Es un enlace a un archivo. Es el archivo el que se indexa.

Por otro lado, un alias es un archivo y está indexado por Spotlight. Su UTI es com.apple.alias-file .

A menos que esté dispuesto a cambiar sus enlaces simbólicos por alias, la respuesta a la pregunta es: No, no puede encontrar enlaces simbólicos con mdfind .

Pero puede utilizar find para buscar enlaces simbólicos. Por ejemplo find . -type l -ls encuentra todos los enlaces simbólicos por debajo del directorio actual.

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