そこで、シンボリックリンクを多数作成して動作させようとし、さまざまな組み合わせを試してみたところ、次のようなエラーが発生しました。
ls: cannot access /etc/sv/me: Too many levels of symbolic links
/service/ または /etc/sv/ にシンボリック リンクがありません。
このエラーを解決する唯一の方法は、/service/ または /etc/sv/ に関連するすべてのシンボリック リンクを削除することですが、シンボリック リンクが表示されません。
答え1
ちょっとしたfind
トリックで循環シンボリックリンクを識別することができます。これを試してください:
find /path/to/search -type l -a ! \( -xtype b -o -xtype c -o -xtype d -o -xtype p -o -xtype f -o -xtype s -o -xtype l \) 2>/dev/null
これは、シンボリックリンクをフィルタリングし、シンボリックリンクのターゲットのタイプが可能な inode タイプのいずれかであるものを除外することによって機能します。残るのは、find
ターゲットのタイプを決定できないものだけです。これは、循環シンボリックリンク(壊れたものは一致します-xtype l
)の場合にのみ発生します。
答え2
シンボリックリンクは「遠隔アクション」を示しません。つまり、シンボリックリンクのターゲットであっても、ターゲットに直接影響を与えることはありません。
表示されているエラーは/etc
、、、/etc/sv
またはのいずれか/etc/sv/me
がシンボリックリンクであることを示しています。どれであるかを特定して修正してください。
答え3
を実行するときは、-l
大文字ではなく小文字 (ダッシュ エル) を使用するようにしてください。-L
ls