Como rastrear a localização do arquivo?

Como rastrear a localização do arquivo?

Quero rastrear os caminhos de pastas específicas em meu sistema da maneira mais simples e eficiente possível. Minha primeira suposição foi que eu poderia conseguir isso usando links simbólicos, mas vejo informações contraditórias sobre como funciona um link simbólico.

Muitas perguntas perguntaram comoobter o caminho para um destino de link simbólico(com respostas como "usar greadlink"). Mas não consigo encontrar nenhuma pergunta perguntando como obter oatualcaminho de destino, já que todas as respostas que encontrei parecem obter apenas ooriginalcaminho de Destino.

Mas enquanto procuro uma maneira de encontrar o caminho do alvo atual, todas as respostas parecem dizer que isso não é possível, pois após a movimentação do alvo, o link simbólico fica "quebrado". Não entendo por que consideram esse link quebrado. Se eu criar o link simbólico B para o alvo A e depois mv A para um novo local, o link simbólico B ainda funcionará para mim. Ele ainda exibe o conteúdo atualizado de A, mesmo que sejam feitas alterações em A após A ter sido movido. E no Path Finder, selecionar 'Mostrar Original' no menu de contexto de B me leva aoAtualizadacaminho de A. E ainda assim, 'greadlink B' aponta apenas para a localização original de A e não para a corrente.

Embora eu tenha mencionado especificamente os links simbólicos, minha questão mais ampla e importante é como obter a localização de um arquivo após ele ter sido movido. A melhor solução que encontrei até agora é usar findde alguma forma, mas isso é muito lento quando tento rastrear mais do que alguns arquivos. Mas os links simbólicos no Path Finder parecem rastrear os locais de destino de maneira eficaz, então sei que deve ser possível.

Responder1

Obrigado @grawity por me lembrar dos aliases. Tentei usar um alias em vez de um link simbólico para rastrear a localização de um arquivo. Acontece que posso usar o seguinte script, que retornará oatualcaminho para o destino mesmo após o destino ter sido 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 comosascript "/path/to/ResolveAlias.applescript" "/path/to/alias"

informação relacionada