• 締切済み

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

シンボリックリンクはディレクトリに対して作成できますが,ハードリンクにはなぜできないのでしょうか? 循環ディレクトリができるからと言われてもシンボリックリンクでもできるんじゃないかとおもいます. よろしくおねがいします.

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.4

多くのUnixだとroot権限があればディレクトリのハードリンクは作れます。 Linuxだと出来ないようですね。おそらくお書きのように循環ディレクトリの問題だと思います。 Unixも一般ユーザに許していない理由も同じ。 シンボリックリンクというのはファイルシステム上では(シンボリックリンク属性の付いた)単なるファイルです。循環ディレクトリは出来ません。 循環ディレクトリが出来て困るのは、ファイルシステムの管理上の理由なので、シンボリックリンクで循環を作っても別にOSは困りません。

回答No.3

ANo.2の者ですが、訂正です。 ×df → ○du

回答No.2

実際、"."や".."は内部的にハードリンクで実装されていることから 分かるようにファイルシステム的には実装可能であるはずだと思うのですが、 以下のような理由により禁止されているのだと思います。 (ちなみに参考URLからたどれるスレッドではsolarisでは可能だという記述が見られます。) (1)利用者の混乱を避けるため 仮にディレクトリに対するハードリンクを作成した場合、 作成者以外の人(作成者がその存在を忘れた場合を含む)が、 その存在を直感的に認識するのは大変だと思います。 (2)コマンドのコーディング負担の軽減のため ぱっと思いつくものでは、 chroot(サンドボックスの外側のディレクトリとハードリンクされるとchrootの意味がない) find,df等ディレクトリを再帰検索するコマンド(循環参照の検知が面倒くさそう) find(ディレクトリのハードリンクの存在を調べたりする様な機能の追加) などが挙げられます。 シンボリックリンクがほとんどの場合に代替の手段となる以上、 ディレクトリのハードリンクの対応にこだわる必要はないと個人的には思います。

参考URL:
http://search.luky.org/linux-users.6/msg05762.html
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

シンボリックリンクは「たどる回数」が制限されていたはず. ハードリンクに「たどる回数の制限」はありません.

関連するQ&A