用硬链链接将文件重新置换到另一个文件。

问题描述 投票:0回答:1
我有两个目录条目

aB。 以前,ab指向不同的indodes。 之后,我希望b指向与a相同的inode。 我希望这是安全的 - 我的意思是,如果它在某个地方失败,则指向其原始Inode或AInode。我尤其不想最终消失。 mv在覆盖时是原子,并且当目的地已经存在时似乎不起作用。所以我可以说: ln

如果失败会留下“ TMP”文件,这是不可取的,但不是灾难。

有更好的方法吗?
(我实际上要做的是替换具有与包含该内容的单个inode相同内容的文件,在所有目录条目之间共享。)

ln a tmp mv tmp b

看起来更好,因为如果

ln a tmp && mv tmp b || rm tmp

失败,则不会被执行(并且在失败时将其弄乱)。
filesystems posix hardlink
1个回答
3
投票

ln

实际上,正如您在问题中所说的那样,这是最快的方法。

(nitpickers角:更快地将两个系统调用放在一个程序中)


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.