次のような構成があるとしましょう。
- フォルダA
- ファイル1
- ファイル2
次に、次のようにフォルダAへのソフトリンクを作成します。ln -s A B
今、次のような結果が出ました。
- フォルダA
- ファイル1
- ファイル2
- フォルダB(フォルダAへのシンボリックリンク(ソフトリンク))
- ファイル1
- ファイル2
これで変更すると、B/file1
その変更がに伝播されますA/file1
。ただし、次のように表示されます。 - ls -l
in を使用する場合B
- thatB/file1
とB/file2
areいいえソフトリンクと代替A/file1
何A/file2
が起こっているのでしょうか?
質問:これは本当ですか?B/file1
へのハードリンクA/file1
?これを尋ねるもう1つの方法は次のとおりです。ディレクトリをソフトリンクすると、そのサブファイルは元のディレクトリのサブファイルへのハードリンクになりますか?すべてをソフトリンクにする方法はありますか?
ベストアンサー1
2つの理由でハードリンクではありません。
- lsとマークされたソフトリンクディレクトリのファイルのハードリンク数は1です。ファイルがハードリンクの場合、数は2つ以上になります。
- ハードリンクはファイルシステムにまたがることはできませんが、ソフトリンクは可能です。ハードリンクを作成したい場合は、ファイルシステム間でディレクトリをソフトリンクできません。
実際に見ているのは、異なるパスから同じディレクトリにアクセスする別の方法です。ディレクトリに入ったり、その中にあるファイルに対して作業を行ったりすると、そのファイルはまったく同じファイルです(部屋にドアを追加しても内容は変更されませんが、入る新しい方法があると想像してみてください)。
ディレクトリの内容をソフトリンクにするには、ディレクトリ自体ではなくディレクトリ内の各ファイルのソフトリンクを作成する必要がありますが、これによりディレクトリのリストが少し混乱します。ソースとターゲットに異なる名前を持つことに加えて、どのような利点があるのかわかりません。