• ベストアンサー
  • 困ってます

シンボリックリンクについて

OSはRedhat5です。 シンボリックリンクの作成がうまくいきません。 実体がある作業ディレクトリ上でシンボリックリンクを作成すると参照できるのですが、 作業ディレクトリ以外に作成すると作成できるのですが、参照しようとすると「シンボリックリンクの階層が多すぎます」と出てきます。 こちらの質問コーナーの「質問番号:502147」にも同様の質問がされており、 自分自身へのシンボリックシンクを張ってたりしませんか? と回答されていますがよく意味がわからない状態です。 お手数ですがご教授頂けると助かります。

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数14805
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.3
  • notnot
  • ベストアンサー率47% (4714/9924)

#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 とします。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

その他の回答 (3)

  • 回答No.4
noname#208124
noname#208124

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

共感・感謝の気持ちを伝えよう!

  • 回答No.2
  • notnot
  • ベストアンサー率47% (4714/9924)

具体的にどういう風にリンクを作ってますか? 間違っているのは間違いないです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

[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では問題なくできたはずなんですが。

  • 回答No.1

ファイル a が存在しない場合 ln -s a b ln -s b a これでお互いに参照することになるので、 cat a すると a ->b , b->a に参照が続いて行き参照の限界に達し a: Too many levels of symbolic links シンボリックリンクの階層が多すぎます と見当外れのエラーメッセージが出てしまいます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

返信ありがとうございます。 上記試してみましたがおっしゃるとおりでした。 このような特殊場合ででないにも関わらず「シンボリックリンクの階層が多すぎます」 と出るのは何か問題があるのでしょうか。

関連するQ&A

  • シンボリックリンクからの被参照を調べたい

    サーバー上の要らなくなったディレクトリを削除しようと思っています。 ただ、その配下の階層のどこかに、他からシンボリックリンクで参照されているファイルやフォルダがあるかもしれません。 そういう状況の有無を手軽に調べる方法はあるのでしょうか。

  • LinuxのシンボリックリンクをMacで開きたい。

    LinuxのシンボリックリンクをMacで開きたい。 Fedora12を使用している初心者です。御教授ください。 /home/userディレクトリ内に、/var/www/htmlディレクトリのシンボリックリンクを作成し、これをSamba接続したMac OS10.5.5から参照しようとすると、ディレクトリではなくファイルとして見え、フォルダを開くことができませんでした。 そこで、smb.conf内にunix extention = noの記述を加えたところ、フォルダとして認識されるようになったのですが、中身は空の状態です。中身ファイルの所有権を777に変更してみたりもしたのですがダメでした。 対処方法をお教え下さい。

  • NFS接続+シンボリックリンクを使ったディレクトリの参照先について

    2台のLinuxサーバ(いずれもRedHat AS3.0) にて、 NFS接続+シンボリックリンクを使ったディレクトリにファイルをコピーしようとしています。 2台のLinuxサーバはそれぞれ  ・サーバA(NFSサーバ)  ・サーバB(NFSクライアント) と記載しています。 初めに、サーバBの「/home/SAVEDATA」をマウントポイントとして、 サーバAの「/home/SAVEDATA」にNFS接続するよう設定した後、 サーバBにtenletでログインし、NFS接続したサーバAのディレクトリをたどっていくと、 途中で「そのようなディレクトリは無い」と言われてしまいます。 ------------------------------------------------------------------------------------ [サーバB] $ vdir /home/SAVEDATA/ lrwxrwxrwx 1 user user 34 10月 3 12:21 /home/SAVEDATA/2005 -> /DSK10/SAVEDATA/2005 [サーバB] $ vdir /home/SAVEDATA/2005/ vdir: /home/SAVEDATA/2005/: そのようなファイルやディレクトリはありません ------------------------------------------------------------------------------------ おそらく、最後のコマンドでは 「サーバB」の「/DSK10/SAVEDATA/2005」を探してしまっているのではないかと思うのですが、 実際見て欲しいのは「サーバA」の「/DSK10/SAVEDATA/2005」です。 (サーバBには「/DSK10」は存在しません。) この環境で、正しくサーバAの「/DSK10/SAVEDATA/2005」を参照するようにすることは可能でしょうか。 お分かりになる方がいらっしゃいましたら、アドバイスをお願い致します。

  • symlinkの作り方

    いつもお世話になっております。 シンボリックリンクを作成する事になりました。 構造は理解しているつもりですが、どのように作ったらいいか ご教授頂きたく質問させて頂いております。 [仕様] DBからデータを読みこんで、imgフィールドのファイル名を元にシンボリックリンクを作成 ・上記imgファイルの実態  document/img/img.jpg symlink(document/img/img.jpg,"link"); 単純に上記のように記述すればシンボリックリンクが作成されるのでしょうか、 自分の持っている書籍等ではシンボリックリンクの作成の仕方が載っておらず、 Webでも上記のように記述している事からそれだけでいいのか。。。 また上記で作成したシンボリックリンクを別のディレクトリの保存したい場合は、 通常ファイルを書き込む要領で行うのでしょうか。 お手数ですが、宜しくお願い致します。

    • 締切済み
    • PHP
  • シンボリックリンクでマルチサイトを実現

    全国向けのサイト構築を考えています。 トップページは、都道府県を選択するようにし、 都道府県のサイトは別ドメインで実現しようと思ってます。 <トップ> http://www.hogehoge.com <都道府県別> http://hokaido.hogehoge.com http://aomori.hogehoge.com : http://okinawa.hogehoge.com それぞれのデザインや機能などは同じなので、 シンボリックリンクでソースを一元化したいと思っています。 一元化はしますが、どの都道府県のページを開いてるのかは、区別しなければなりません。 どのように区別したらいいのでしょう?というのが質問です。 シンボリックリンクを作成し、それぞれのページで "__FILE__" を参照したところ、 元ソースのパスとなっていますので区別ができません。 簡単にできそうな気がするのですが・・・。

    • ベストアンサー
    • PHP
  • cpの-H -L -Pオプションについて

    こんにちは。 cpコマンドでディレクトリをまるごとコピーする際の話なのですが、-H,-L,-Pオプションの違いについて悩んでいます。 man cpでは、 -H 処理は、source_file オペランドとして指定したシン ボ リッ クリンクが参照するファイルの種類と内容に基づい て行われます。 -L 処理は、source_file オペランドとして指定したシン ボ リッ ク リ ンク、あるいは、ファイル階層の検索中に出 会ったシンボリックリンクが参照するファイルの種類 と 内容に基づいて行われます。 -P 処理は、source_file オペランドとして指定したシン ボ リッ ク リ ンク、あるいは、ファイル階層の検索中に出 会ったシンボリックリンク自身に行われます。 と出ます。いったいなにが言いたいのかわかりません(^^; 実際試してみると、-H,-Pはシンボリックリンクファイルはそのままシンボリックリンクファイルとしてコピーされ、-Lはシンボリックリンクファイルが普通のファイルになってコピーされます。-Hと-Pは実際どのように違うのでしょうか?また、-Lについても、manでの意味がわかりません。 どなたか、それぞれの動作の違いと、manでの意味について解説願えないでしょうか?参考になるページでも構いません。よろしくお願いします。 Solarisのバージョンですが、manの最後には SunOS 5.10 と表示されています。

  • /etc/hosts ファイルのリンクについて

    Solaris8を使用しております。 /etc/hosts シンボリックリンクについて質問します。 つい先日、/etc/hosts はファイル実体ではなく、/etc/inet/hosts へのシンボリックリンクであるということを知りました。 普段、IPアドレスとホスト名を確認する際には、/etc/hosts から情報を得ていますが、当該実体ファイルが、/etc/hosts へリンクされている意図は何でしょうか。 シンボリックリンク作成については、/etc/hosts ファイルに限ったことではないと思いますが、シンボリックリンクを使用することの利点についても併せて教えていただけると幸いです。 ご存知の方がいたら回答お願いします。

  • Webからのディレクトリへのアクセスについて

    phpで分類ごとに分けたアップローダを作成しようとしています。 それで保存先ディレクトリに「分類名をurlエンコードしたもの」を名前としてつけています。 例えば「情報」という分類のファイルは 「%BE%F0%CA%F3」ディレクトリ内に保存されます。 しかし、ここへのアクセスをWebから試みると 「You don't have permission to access」となってしまい参照することができません。 この階層へのアクセスそのものができないのかと思い、 同階層に「test」など普通の名前のディレクトリを作成し試したところこれは参照可能でした。 ディレクトリ名にURLエンコードを用いることがだめなのでしょうか? それともなにか段階を踏まなければならないのでしょうか? アドバイスお願いします。

    • ベストアンサー
    • PHP
  • カーネル再構築失敗

    お世話になります。 RedHat 7.2、カーネルのバージョンを上げるため作業をしていましたが、/usr/src 内に linux シンボリックリンクを削除せず新しいカーネルを置いてしまいました。それが原因か、/src 内には 5つのディレクトリ(redhat, linux, linux-2.2.16, linux-2.4.9-13, linux-2.4 )ができてます。 この間違いに気づかす、 某HP 参考に、 make mrproper → make xcpnfig → make dep → make bzdisk と作業を行いました。で、FDをいれて再起動したのですが、当然のごと起動しませんでした。(4桁(だったと思います)の数字がひたすら画面に出力されつづけてます。) どこから手をつけていいかわかりません。よろしくお願いします。

  • ディレクトリおよびファイルを作成する方法について(MS-DOSバッチ、vbs等)

    Windows Server 2003 についての質問です。 もしご存知でしたら、ヒントだけでもご教示願えますでしょうか。 目的  ・あるツールの評価をするため、多数のディレクトリ   とファイルを作成する必要があります。   これを手動で実行することは時間的に無理があるため、   MS-DOSによるバッチやvbs等スクリプトによる自動化を   したいと思っております。 やりたいこと  ・例えば、下記のような階層構造でフォルダおよびファイルを   作成するバッチを作成したいです。   c:\フォルダ1\フォルダ2\フォルダ3\フォルダ4\フォルダ5\フォルダ6 各階層のフォルダ配下にもサブフォルダとファイルを多数存在させます。   ファイルサイズは固定です。   フォルダ、ファイルの名前は単純なもので構いませんが、   番号を振りたいです。   方法としては、まずは元になるファイルを作成しておき、   あとはforコマンドでディレクトリを作成してファイルを   コピーしていけば良いと思っておりますが、実際に   どのようにMS-DOSバッチ化(もしくはvbsスクリプト化)   すれば良いか不明です。 お手数ですが、どうぞご教示のほど宜しくお願い致します。