gpt4 book ai didi

linux - 在 Linux 中创建到部分文件内容的硬链接(hard link)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:19 26 4
gpt4 key购买 nike

我有文件 A,大小为 200 MB。现在我想创建一个硬链接(hard link)到 fileA,命名为 fileB,但我只希望这个文件指向 fileA 的前 100 mb。所以基本上我需要 fileB 指向相同的数据 block ,但长度不同。它不一定是真正的硬链接(hard link),它可以是代理内容的虚拟文件。

我正在考虑以某种方式复制 Inode 并更改长度,但我认为这可能会导致文件系统一致性问题(当数据 block 四处移动时等)。是否有任何 linux 工具或用户级系统调用可以让我这样做?

最佳答案

您不能按照您所说的方式直接执行此操作。有些文件系统可以做到这一点。例如LessFS可以做到这一点。我也相信 btrfs 的底层结构支持这一点,所以如果有人放入钩子(Hook),它就可以在用户级别访问。

但是,对于任何 ext 文件系统都无法做到这一点,我相信它会隐式地发生在 LessFS 中。

在 btrfs 中有一种非常丑陋的方法。如果你做一个快照,然后将快照文件截断到100M,你就有效地达到了你的目的。

我相信这也适用于 btrfs 和足够新的 cp 版本,您可以使用 cp 复制文件然后截断一个副本。 cp 的版本必须有 --reflink 选项,如果你想对此更加确定,请提供 --reflink=always 选项。

关于linux - 在 Linux 中创建到部分文件内容的硬链接(hard link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5054709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com