Estamos interessados em imprimir todas as informações do link simbólico, a partir de um diretório raiz. Gostaríamos que as informações fossem impressas no seguinte formato:
symbolic name -> actual name
[Observe a mesma linha]
Tentamos o seguinte e isso nos dá o nome simbólico e o nome real, mas em linhas diferentes :
find . -type l -print -exec readlink -f {} \;
Eu não acho que você estava longe. Use
-printf
em vez de-print
(supondo que sua versão ofind
tenha) e você obtém issoSaída de exemplo
Para referência,
Você obterá linhas sobrecarregadas para links quebrados (
-printf
sem uma nova linha)Com
zsh
:Where
@^-@
restringe a expansão glob a arquivos de links simbólicos não quebrados (links simbólicos para os quais o destino é acessível, uma condição necessária para que seu caminho canônico seja determinado, o equivalente a GNUfind
's-type l ! -xtype l
).$link:P
fornece o caminho real do link (o caminho absoluto canônico após a resolução dos links simbólicos de todos os componentes semelhante ao que arealpath()
função padrão faz, ou GNUreadlink -f
).