¿Cómo rastrear la ubicación del archivo?

¿Cómo rastrear la ubicación del archivo?

Quiero rastrear las rutas de carpetas específicas en mi sistema de la manera más simple y eficiente posible. Mi primera suposición fue que podría lograr esto usando enlaces simbólicos, pero veo información contradictoria sobre cómo funciona un enlace simbólico.

Muchas preguntas han preguntado cómoobtener la ruta a un objetivo de enlace simbólico(con respuestas como "usar greadlink"). Pero no puedo encontrar ninguna pregunta sobre cómo obtener elactualruta de destino, ya que todas las respuestas que he encontrado parecen obtener solo laoriginalruta de destino.

Pero mientras busco una manera de encontrar la ruta de destino actual, todas las respuestas parecen decir que esto no es posible ya que después de que el objetivo se ha movido, el enlace simbólico se "roto". No entiendo por qué consideran roto este enlace. Si hago un enlace simbólico B para apuntar a A y luego muevo A a una nueva ubicación, el enlace simbólico B todavía funciona para mí. Todavía muestra el contenido actualizado de A, incluso si se realizan cambios en A después de que A se haya movido. Y en Path Finder, seleccionar 'Mostrar original' en el menú contextual de B me lleva a laactualizadocamino de A. Y, sin embargo, 'greadlink B' solo apunta a la ubicación original de A y no a la actual.

Si bien mencioné específicamente los enlaces simbólicos, mi pregunta más amplia e importante es cómo obtener la ubicación de un archivo después de haberlo movido. La mejor solución que he encontrado hasta ahora es usarla findde alguna manera, pero es demasiado lenta cuando intento rastrear más de unos pocos archivos. Pero los enlaces simbólicos en Path Finder parecen rastrear ubicaciones de destino de manera efectiva, así que sé que debe ser posible.

Respuesta1

Gracias @grawity por recordarme los alias. Intenté usar un alias en lugar de un enlace simbólico para rastrear la ubicación de un archivo. Resulta que puedo usar el siguiente script, que devolverá elactualcamino hacia el objetivo incluso después de que el objetivo se haya movido.

ResolveAlias.applescript

#!/usr/bin/osascript
on run argv
    tell application "Finder"
        set theItem to (POSIX file (item 1 of argv)) as alias
        if the kind of theItem is "alias" then
            get the POSIX path of (original item of theItem as text)
        end if
    end tell
end run

Invocado conosascript "/path/to/ResolveAlias.applescript" "/path/to/alias"

información relacionada