如果我在同一分区上移动文件,当我移动时,我应该将i节点的引用计数更新为2(因为我是第一次复制)然后再次将其减少为1(当我删除时目录条目)?
或者在移动过程中引用计数是不变的?
答案 0 :(得分:1)
没有
如果文件被移动",真正发生的是文件命名层中对inode的引用正在被更改,那就是它。实际上,文件不会被复制。
意识到文件命名层纯粹是为了您的方便。文件系统本身实际上只关心inode。通常,目录通常是文件命名层的虚构。 (确实有些文件系统实际上是在文件系统层以层次结构的方式组织目录,但例如对于ext2和ext3则不然。)
虽然技术上确实在极短的时间内在命名层中没有引用或两个引用文件,但从系统调用内核的角度来看,这实际上是一个原子事务。正在制造,所以它实际上无关紧要,也不会成为你的竞争条件。