Como encontrar todos os links simbólicos no PWD que se referem a arquivos fora do PWD?unix

StackOverflow https://stackoverflow.com/questions/9446571

  •  12-11-2019
  •  | 
  •  

Pergunta

posso encontrar todos os links no diretório por comando:

find . -type l

Mas preciso de um link que se refira apenas a arquivos fora do PWD.Alguém pode dizer como fazer isso?Obrigado.

Foi útil?

Solução

Eu faria algo como:

find . -type l -exec readlink -f '{}' \; | grep -v "^`readlink -f ${PWD}`"

readlink -f fornece o caminho canônico de um arquivo, então o primeiro comando fornece o caminho dos links e o grep O comando exclui arquivos que começam com o caminho atual.

Se você quiser lembrar quais links apontavam para esses caminhos, veja uma maneira de fazer isso:

find . -type l -exec sh -c 'echo $(readlink -f "{}") "<-- {}"' \; \
  | grep -v "^$(readlink -f ${PWD})"

o -exec switch é mais complicado, pois você precisa exibir o caminho vinculado e o caminho do link simbólico.

Outras dicas

Eu faria algo como:

for link in `find . -type l`; do X=$(dirname `readlink $link`); if [ $X != '.' ]; then echo $link; fi ; done
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top