「too many levels of symbolic links」というエラーメッセージについて
はじめに
僕は出会ったことはないのですが、 「too many levels of symbolic links」 というエラーメッセージに遭遇したという話を聞いて再現方法を調べてみました。
検証環境
エラーを再現させてみる
早速再現させてみます。
通常はこんなことは起きないとは思いますが、 自分自身を参照するシンボリックリンクhoge
を作成します。
このシンボリックリンク hoge
をフォルダとみなして、 hoge/x
というファイルを作成してみます。
エラーが再現しました。
touch
コマンドでなくても同じエラーメッセージが発生します。
原因の多くは「循環したシンボリックリンク」
こちらのエラーメッセージは、シンボリックリンクが何重にも渡って作られた場合に発生します。
多くの場合、シンボリックリンクの循環が原因です。
先の例では、 hoge
シンボリックリンクは自分自身を参照している形になりますが、このようなシンボリックリンクに対してファイル(ディレクトリもLinuxではファイルです)を作成しようとした場合にエラーが発生します。
以下のような三すくみ状態のシンボリックリンクでもエラーは発生します。
シンボリックリンクは何重まで作ることができる?
シンボリックリンクは何重まで作ることができるでしょう?
実験してみます。
0/
というディレクトリを作成- このディレクトリに対して
1
というシンボリックリンクを作成 - シンボリックリンク
1
経由でファイルを作成してみる - このシンボリックリンクに対して
2
というシンボリックリンクを作成 - シンボリックリンク
2
経由でファイルを作成してみる - このシンボリックリンクに対して、
3
... (省略)
このように、 41階層のシンボリックリンクからはエラーが発生するようになりました 。
シンボリックリンクの連鎖は、 40階層までにとどめましょう !
(40シンボリックリンクの数珠つなぎなんてたどりたくないですよね。。。)
ひとこと
「too many levels of symbolic links」 というエラーメッセージにお困りの場合に参考になれば幸いです。
ディスカッション
コメント一覧
どんなファイルシステムで40階層まで作れたことがわかったのですか。
> 鳴神裁四点一号
循環するシンボリックリンクを40個作られたということでしょうか?
他にも発生条件があるのかもしれませんね。
ご意見ありがとうございます!