Linuxでシンボリックリンクを使用する方法は?

Linuxでシンボリックリンクを使用する方法は?

つまり、一部のプロセスがシンボリックリンクを読み取ろうとするとどうなりますか?読み書き中にシンボリックリンクが変更された場合はどうなりますか?

例:2つの巨大で類似した100Gファイルがあり、シンボリック/mnt/1リンクを介して使用できます。一部のプログラムは読み取りを開始します。しばらくするとリンクがからに変わりますが、ファイルはまだ読み込まれています。/mnt/2/mnt/1/home/user/fileA/home/user/file/mnt/1/mnt/2A

プログラムは絶対パスをキャッシュしますか?

シンボリックリンクが変更されたため、エラーが発生して失敗しますか、それとも何も起こらなかったかのように動作しますか?

/home/user/fileブロックデバイス(クローン化された2つのiSCSIディスク)に接続されている場合は異なりますか?

ベストアンサー1

シンボリックリンクは物理ファイルの名前です(インデックスノード)ファイルシステムから。システムは実際のファイルを見つけるためにシンボリックリンクを解釈し、ファイルを開くときにファイルのinodeを見つけて使用します。この時点でファイルをインポートするために使用するパスは重要ではありません。オペレーティングシステムは、コンテンツをキャッシュせずにそのinodeを介してファイルから読み込みます。私が理解しているように、ハードリンクを介してファイルの読み取りを開始し、そのハードリンクを削除することができます(ファイルがまだ他の場所にリンクされている限り)。そしてファイルが解析された限り(名前文字列 - > inode)。

おすすめ記事