首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >硬链接linux,内存

硬链接linux,内存
EN

Stack Overflow用户
提问于 2013-11-25 09:58:24
回答 2查看 496关注 0票数 0

当您在linux中复制文件(使用contex菜单复制命令)时,linux是否创建了文件的硬链接?另外,如果您删除原始文件,而不是硬链接,那么该文件仍然存在于内存中,但是它的指针被删除了呢?我很难用记忆来理解一些东西。要释放磁盘空间,需要删除两个文件,对吗?硬链接是否指向原始文件的内存位置?我以前看过“inode”这个词,现在我很安静,知道inode到底是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-25 10:25:24

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

一个目录包含一组名称和数字:“这个目录包含文件foo,它是这个驱动器上的文件号3,bar,它是文件号4,quux,17,即123,最后是ohmygod,77321341”。Inode编号3包含“该文件创建于1970年1月1日,最后一次修改于1990年1月1日,最后一次读取于1990年1月2日。它的大小为722字节,这些字节位于驱动器上的4k块号768123中”以及其他一些内容。

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

票数 1
EN

Stack Overflow用户

发布于 2013-11-25 10:07:39

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

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

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

当不再有指向文件的目录条目,并且没有程序对该文件具有打开句柄时,就再也无法到达该文件。因此,操作系统释放磁盘上的空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20189142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档