コマンドでディレクトリ内のすべてのリンクを見つけることができます:
find . -type l
しかし、PWD 以外のファイルのみを参照するリンクが必要です。誰がそれを行う方法を言うことができますか? ありがとう。
私は次のようなことをします:
for link in `find . -type l`; do X=$(dirname `readlink $link`); if [ $X != '.' ]; then echo $link; fi ; done
私は次のようなことをします:
find . -type l -exec readlink -f '{}' \; | grep -v "^`readlink -f ${PWD}`"
readlink -f
はファイルの標準パスを提供するため、最初のコマンドはリンクのパスを提供し、grep
コマンドは現在のパスで始まるファイルを除外します。
これらのパスを指しているリンクを覚えておきたい場合は、次の方法があります。
find . -type l -exec sh -c 'echo $(readlink -f "{}") "<-- {}"' \; \
| grep -v "^$(readlink -f ${PWD})"
-exec
リンクされたパスとシンボリックリンクのパスの両方を表示する必要があるため、スイッチはより複雑です。