【问题标题】:What really happens when deleting file [closed]删除文件时真正发生的事情[关闭]
【发布时间】:2018-05-27 19:57:23
【问题描述】:

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

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

谢谢。

【问题讨论】:

    标签: linux unix symlink inode hardlink


    【解决方案1】:

    这是题外话,不止一个问题,但是:

    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 就会消失。

    【讨论】:

      【解决方案2】:

      inode 将消失。只要您至少有一个硬链接,inode 就会继续存在。软链接将不起作用。软链接实际上是一个单独的文件。硬链接是指向同一文件的另一个指针。一旦硬链接计数变为零,inode 就会被删除。

      只要内存没有被覆盖,它就会继续存在(因此磁盘恢复工具将能够得到它),但就操作系统而言,内存是可以重复使用的.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 2017-06-12
        • 2014-05-14
        相关资源
        最近更新 更多