假设我创建了一个文件。一个新的inode创建了。 然后我创建了一个指向该文件的软链接,并删除了硬链接。
inode是否仍然存在?它是否指向内存中的相同位置? 软链接是否连接到连接到内存的inode,这是找不到文件的原因,还是软链接失去了与inode的连接?
谢谢。
答案 0 :(得分:1)
inode将消失。只要您至少有一个硬链接,inode将继续存在。软链接无效。软链接实际上是一个单独的文件。硬链接是指向同一文件的另一个指针。一旦硬链接计数变为零,则删除inode。
只要内存没有被覆盖,它就会继续存在(因此磁盘恢复工具就可以获得它),但是考虑到操作系统,内存可以重用
答案 1 :(得分:1)
这是offtopic和不止一个问题,但是:
Linux中的软链接未连接到inode。它只有文件的名称(请参阅软链接的大小?它是名称的长度是链接!)。即使重命名原件也会破坏链接。
[bart@localhost link]$ touch foo
[bart@localhost link]$ ln -s foo bar
[bart@localhost 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
[bart@localhost link]$ mv foo foo2
[bart@localhost 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
[bart@localhost link]$ cat bar
cat: bar: No such file or directory
如果删除文件,则inode消失。