土曜の昼、学校帰りの昼メシの思い出

OSはRedhat5です。
シンボリックリンクの作成がうまくいきません。
実体がある作業ディレクトリ上でシンボリックリンクを作成すると参照できるのですが、
作業ディレクトリ以外に作成すると作成できるのですが、参照しようとすると「シンボリックリンクの階層が多すぎます」と出てきます。

こちらの質問コーナーの「質問番号:502147」にも同様の質問がされており、
自分自身へのシンボリックシンクを張ってたりしませんか?
と回答されていますがよく意味がわからない状態です。

お手数ですがご教授頂けると助かります。

A 回答 (4件)

#2です。

。。再現しません。/a というファイルがないので、「そのようなファイルやディレクトリはありません」というエラーになります。

ln -s a /b だと、bの中身は「a」になるので、/a を参照しようとして存在しないとエラーになります。これはこれで正常な動きです。「シンボリックリンクの階層が多すぎます」というエラーが出る以上、/a というシンボリックリンクが存在するとしか思えません。

/b を /home/test/a へのシンボリックリンクにしたいなら、
絶対パスで ln -s /home/test/a /b または相対パスで ln -s home/test/a /b とします。
    • good
    • 0
この回答へのお礼

指摘して頂いた通り絶対パスで行うと実体があるディレクトリ以外でも
シンボリックリンクが作成できました。
実体を指定するパスがおかしかったんですね。

どうもありがとうございました。

お礼日時:2008/12/07 18:59

ls -l でどこにリンクしているのか確認してみては?

    • good
    • 0

具体的にどういう風にリンクを作ってますか?


間違っているのは間違いないです。
    • good
    • 0
この回答へのお礼

[root@testserver /]# cd /home/test  テストディレクトリに移動して
[root@testserver test]# touch a  ファイルaを作成
[root@testserver test]# ln -s a b testディレクトリ内にシンボリックリンクbを作成すると問題ありませんが
[root@testserver test]# ln -s a /b シンボリックリンクを/下に作成すると
[root@testserver test]# ls / で見てみると存在してはいるのですが
[root@testserver test]# more /b
/b: シンボリックリンクの階層が多すぎます
となります。

作成する場所は本体があるディレクトリ以外はどこでも同じ結果になります。
以前Redhatでは問題なくできたはずなんですが。

お礼日時:2008/12/07 17:39

ファイル a が存在しない場合



ln -s a b
ln -s b a

これでお互いに参照することになるので、
cat a
すると a ->b , b->a に参照が続いて行き参照の限界に達し
a: Too many levels of symbolic links
シンボリックリンクの階層が多すぎます

と見当外れのエラーメッセージが出てしまいます。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
上記試してみましたがおっしゃるとおりでした。

このような特殊場合ででないにも関わらず「シンボリックリンクの階層が多すぎます」
と出るのは何か問題があるのでしょうか。

お礼日時:2008/12/07 12:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報