~からhttp://en.wikipedia.org/wiki/Symbolic_link#Storage_of_symbolic_links
シンボリックリンクの初期実装では、シンボリックリンク情報を一般ファイルのデータとして保存した。このファイルには、リンク先へのテキスト参照と、それをシンボリックリンク(説明が必要)として表すインジケータが含まれています。
この方法は低速で、小規模システムではディスクスペースを非効率的に使用します。と呼ばれる改善クイックシンボリックリンク、ディスクにファイル情報を格納するために使用されるデータ構造(インデックスノード)にターゲットパスを保存することを許可します。。このスペースには通常、ファイルに割り当てられているディスクブロックアドレスのリストが格納されます。これにより、短い宛先パスを持つシンボリックリンクにすばやくアクセスできます。高速シンボリックリンクを持つシステムは、元の方法を使用することがよくあります。ターゲットパスが使用可能なinodeスペースを超える場合。元のスタイルは遡及して呼び出されます。 遅いシンボリックリンク。また、他のバージョンまたは以前のバージョンのオペレーティングシステムとのディスク互換性にも使用されます。
「ディスクにファイル情報を格納するために使用されるデータ構造(アノード)内にターゲットパスを保存できるようにする」とは、クイックシンボリックリンクがクイックシンボリックリンクのアノード内にリンクされたファイルへのパスを保存することを意味します。 ?
ファイル自体として、高速シンボリックリンクは実際にはinodeであり、ファイルの内容はありませんか?
遅いシンボリックリンクにはファイル自体にinodeがあり、一部のファイルの内容はターゲットパスにありますか?
「ターゲットパスが使用可能なinodeスペースを超える場合」とはどういう意味ですか?
ファイルへのシンボリックリンクが高速シンボリックリンクである場合、シンボリックリンクとファイルが同じファイルシステムにある場合にのみこれは正しいですか?
シンボリックリンクが高速か遅いかを確認するコマンドはありますか?
ファイルの内容がある場合、シンボリックリンクの内容を表示するコマンドは何ですか? (この方法では、高速シンボリックリンクにファイルコンテンツはありませんが、遅いシンボリックリンクにファイルコンテンツがある場合はこれを確認できます。)
ベストアンサー1
「ディスクにファイル情報を格納するために使用されるデータ構造(アノード)内にターゲットパスを保存できるようにする」とは、クイックシンボリックリンクがクイックシンボリックリンクのアノード内にリンクされたファイルへのパスを保存することを意味します。 ?
はい
ファイル自体として、高速シンボリックリンクは実際にはinodeであり、ファイルの内容はありませんか?
「ファイル内容を含める」の意味によって異なります。ファイルの内容open()
を取得できないため、シンボリックリンクにはread()
ファイルの内容は含まれません。ただし、引用したテキストとは、「ファイルにリンク先へのテキスト参照が含まれている」という意味です。はい。そのテキスト参照はファイルの「内容」と見なすことができます。
これは、シンボリックリンクが高速シンボリックリンクであるか遅いシンボリックリンクであるかにかかわらず同じです。ファイルシステムがこの情報をディスク上のデータ構造に保存することを選択する方法と場所は実装の詳細であり、これには影響しません。
遅いシンボリックリンクにはファイル自体にinodeがあり、一部のファイルの内容はターゲットパスにありますか?
同じ観点から見るとそうです!
「ターゲットパスが使用可能なinodeスペースを超える場合」とはどういう意味ですか?
inodeを格納するために使用されるファイルシステムとデータ構造の種類、そのデータ構造に空き容量がどれだけあるか、サイズが可変か固定かによって異なります。遅いシンボリックリンクとして保存される前のシンボリックリンクターゲットパスの最大長は、ファイルシステムの実装の詳細です。
しかし、特定のファイルシステムが短いコンテンツを保存するために同じトリックを使用するのを防ぐことはできません。定期的なスペースとディスクアクセスを節約するためのファイルです。
シンボリックリンクが高速か遅いかを確認するコマンドはありますか?
せいぜいファイルシステムのデバッグやダンプツールです。興味のあるファイルシステムの種類(xfs、ext *、btrfsなど...)に完全に依存します。
ファイルの内容がある場合、シンボリックリンクの内容を表示するコマンドは何ですか? (この方法では、高速シンボリックリンクにファイルコンテンツはありませんが、遅いシンボリックリンクにファイルコンテンツがある場合はこれを確認できます。)
を使用してシンボリックリンクのターゲットパス(コンテンツ)を取得できますが、それでもreadlink
問題ls -l
ありません。