硬链接linux,内存

时间:2013-11-25 09:58:24

标签: linux memory

当您在linux中复制文件(使用contex菜单复制命令)时,linux是否会创建文件的硬链接? 此外,如果您删除原始文件而不是硬链接会发生什么,该文件仍然存在于内存中,但它的指针被删除了? 我很难用记忆理解一些事情。 要释放磁盘空间,您需要删除这两个文件,对吗? 硬链接是否指向原始文件的内存位置?我曾经看过术语inode,我现在很安静,确定inode到底是什么。

2 个答案:

答案 0 :(得分:1)

inode是除内容之外的所有文件数据。

目录包含一组名称和数字:"此目录包含文件foo,此驱动器上的文件编号为3,条形码为文件编号4,quux,17,viz,123,最后是ohmygod ,77321341"。序号3包含"该文件创建于1970年1月1日,最后修改于1990年1月1日,最后一次读取于1990年1月2日。它是722字节大,这些字节是4k块号768123 on驱动器"还有一些事情。

stat()系统调用显示需要多少个块,几乎所有其他与inode相关的内容。

答案 1 :(得分:0)

复制不会创建硬链接,这会破坏行为。硬链接只是同一文件的额外一等名称;通过一个名称修改文件(而不是像临时名称一样保存,然后像某些编辑那样移动它),并且当在另一个名称下访问时,您将看到文件中的更改。不是我对副本的期望。

请注意,文件的名字没有什么特别之处。所有硬链接都只是指向同一个文件。

一旦指向文件的最后一个目录条目被删除,可能仍然存在指向它的文件句柄(来自打开该文件的程序)。只要其中一个存在,该文件仍然存在并可以使用。它不能被之前没有这样做的进程打开,因为它已经没有名字了。

当没有更多目录条目指向文件且没有程序具有该文件的打开句柄时,它永远不会再次到达。因此,操作系统释放磁盘上的空间。