私はバージョン6 unixのテキストを読んでいて、inodeについて学んだだけです。私は次の質問を持っています:ファイルとiノードを削除する
私は1つのディレクトリにファイルがあり、それ以外の場所にファイルへのリンクがあるとします。ファイルを削除した場合、refcountが0ではないため、iノードは引き続き存在するでしょうか?そして、これはリンクが存在している間にファイルが実際に削除されていないことを意味し、iノード番号を通してファイルにアクセスできますか?
私はバージョン6 unixのテキストを読んでいて、inodeについて学んだだけです。私は次の質問を持っています:ファイルとiノードを削除する
私は1つのディレクトリにファイルがあり、それ以外の場所にファイルへのリンクがあるとします。ファイルを削除した場合、refcountが0ではないため、iノードは引き続き存在するでしょうか?そして、これはリンクが存在している間にファイルが実際に削除されていないことを意味し、iノード番号を通してファイルにアクセスできますか?
はい、リンクがhard linkの場合です。いいえ、それがちょうどsymbolic linkの場合。
ハードリンクは基本的に同じinodeを持つ複数のディレクトリにある同じファイルです。ファイルのディレクトリの1つからリンクを解除すると、参照カウントが1つだけ減少します。ゼロに達するまで削除されません。
シンボリックリンクには独自のinodeがあり、他のエントリにリダイレクトされます。ターゲットが削除されると、シンボリックリンクがぶら下がります。シンボリックリンク自体は、対象のファイルやディレクトリに影響を与えずに削除することができます。
ファイル名は、ディスクのどこかを指し示すディレクトリテーブルのエントリだけです。ハードリンクは、同じデータを指す別の名前エントリです。後続のハードリンクは、元のファイル名のエントリと区別できません。
答えは「はい」です。