2017-12-13 9 views
0

ファイルを作成したとします。新しいinodeが作成されました。 次に、そのファイルへのソフトリンクを作成し、ハードリンクを削除しました。ファイルを削除すると実際にどうなるのですか

iノードはまだ存在しますか?メモリ内の同じ場所を指していますか? ソフトリンクがメモリに接続されているiノードに接続されているため、ファイルが見つからない、またはソフトリンクがiノードとの接続を失いますか?

ありがとうございます。

答えて

1

これはofftopicと、複数の問題が、次のとおりです。

のLinuxでソフトリンクがiノードに接続されていません。それはファイルの名前だけを持っています(ソフトリンクのサイズを参照してください。名前の長さはリンクです!)。オリジナルの名前を変更してもリンクが解除されます。

[[email protected] link]$ touch foo 
[[email protected] link]$ ln -s foo bar 
[[email protected] link]$ ls -la 
lrwxrwxrwx 1 bart bart 3 Dec 13 21:09 bar -> foo 
-rw-rw-r-- 1 bart bart 0 Dec 13 21:09 foo 
[[email protected] link]$ mv foo foo2 
[[email protected] link]$ ls -la 
lrwxrwxrwx 1 bart bart 3 Dec 13 21:09 bar -> foo 
-rw-rw-r-- 1 bart bart 0 Dec 13 21:09 foo2 
[[email protected] link]$ cat bar 
cat: bar: No such file or directory 

ファイルを削除すると、iノードはなくなります。

1

iノードがなくなります。 iノードは少なくとも1つのハードリンクを持っていれば存在し続けます。ソフトリンクは効果がありません。実際、ソフトリンクは別のファイルです。ハードリンクは同じファイルへの別のポインタです。ハードリンク数がゼロになると、iノードが削除されます。

メモリが上書きされない限り、それは存在し続けます(したがって、ディスクリカバリツールはそれにアクセスできます)が、オペレーティングシステムが考慮される限り、メモリは再利用。

関連する問題