file - 通过操作 inode 在没有临时文件的情况下添加文件?

标签 file prepend inode

准备一个大文件是困难的,因为它需要推送所有
其他字符向前。但是,是否可以通过操纵来完成
inode 如下?:

  • 在磁盘上分配一个新块并填充您的前置数据。
  • 调整 inode 告诉它你的新块现在是第一个
    块,并将前一个块撞到第二个块
    位置,从前第二个块到第三个位置,依此类推。

  • 我意识到这仍然需要向前撞块,但应该是
    比必须使用临时文件更有效。

    我还意识到新的第一个块将是一个“短”块(并非块中的所有数据都是文件的一部分),因为您的前置数据不太可能与块的大小完全相同。

    或者,如果 inode 块被简单地链接起来,它只需要很少的
    完成上述工作。

    注意:我上次直接操作磁盘数据的经验是使用
    Commodore 1541,所以我的知识可能有点过时了......

    最佳答案

    现代操作系统不应该允许用户这样做,因为 inode 数据结构特定于底层文件系统。

    如果您的文件系统/操作系统支持它,您可以通过在开头添加空数据,然后写入稀疏块来使文件成为稀疏文件。理论上,这应该给你你想要的。

    YMMV,我只是在胡思乱想。 ;)

    关于file - 通过操作 inode 在没有临时文件的情况下添加文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515715/

    相关文章:

    javascript - 如何仅使用 JavaScript 获取下一个元素?

    c - 在 MINIX 上通过文件名检索文件的 inode 号

    unix - 理解 inode 的概念

    file - 如何在文本文件中查找不可打印的字符

    c# - 如何检查仅具有列表访问权限的文件夹?

    Java - 如何将文件写入指定目录

    python - Unicode解码错误: 'ascii' codec can't decode

    ruby-on-rails - rails prepend_view_path 可安装引擎

    linux - 使用 Node.js 的大量 Inode

    c - strcat 不在 C 中添加字符串