Comment trouver tous les liens symboliques dans PWD qui se réfèrent à des fichiers en dehors de PWD? Unix

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

  •  12-11-2019
  •  | 
  •  

Question

Je peux trouver tous les liens dans dir par commande:

find . -type l

Mais j'ai besoin de lien qui ne fait référence qu'aux fichiers en dehors de PWD. Quelqu'un peut-il dire comment le faire? Merci.

Était-ce utile?

La solution

Je ferais quelque chose comme:

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

readlink -f vous donne le chemin canonique d'un fichier, donc la première commande vous donne le chemin des liens et le grep La commande exclut les fichiers commençant par le chemin actuel.

Si vous voulez vous rappeler quels liens indiquaient ces chemins, voici une façon de le faire:

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

la -exec Le commutateur est plus compliqué car vous devez afficher à la fois le chemin lié et le chemin du Symlik.

Autres conseils

Ich ferait quelque chose comme:

for link in `find . -type l`; do X=$(dirname `readlink $link`); if [ $X != '.' ]; then echo $link; fi ; done
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top