删除文件

时间:2017-12-13 20:04:26

标签: linux unix symlink inode hardlink

假设我创建了一个文件。一个新的inode创建了。 然后我创建了一个指向该文件的软链接,并删除了硬链接。

inode是否仍然存在?它是否指向内存中的相同位置? 软链接是否连接到连接到内存的inode,这是找不到文件的原因,还是软链接失去了与inode的连接?

谢谢。

2 个答案:

答案 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消失。