相当于文件上的 memmove:将一系列字节复制到较早的位置

相当于文件上的 memmove:将一系列字节复制到较早的位置

对于具有相同输入和输出文件且适用于大文件的文件,memmove 的等效项是什么?

dd当我将文件内容向右移动时有效,但如果向左移动内容则无效,因为没有处理重叠。

ddrescue有反向副本,但拒绝处理相同的输入和输出文件。

答案1

beav是一个可视化二进制编辑器,其命令类似于emacs可以编辑二进制文件。用于移动块的顺序将沿着以下顺序运行:

  • 找到块的开始并设置标记ESC.
  • 转到块末尾并删除标记到光标(存储在终止缓冲区中的内容)CTRL-W
  • 转到您想要将块移动到的位置并猛拉CTRLY
  • 文件保存CTRL-XCTRLS
  • 辞职CTRL-XCTRLC

这是Debian贝夫包描述。

提炼

使用 beav,您可以编辑 HEX、ASCII、EBCDIC、OCTAL、DECIMAL 和 BINARY 格式的文件。 FLOAT 模式下可以显示数据,但不能编辑数据。您可以在这些模式中的任何一种模式下进行搜索或搜索并替换。数据可以以字节、字或双字格式显示。显示 WORDS 或 DOUBLE WORDS 时,数据可以按 INTEL 或 MOTOROLA 的字节顺序显示。可以将任意长度的数据插入到文件中的任意位置。该数据的来源可以是键盘、另一个缓冲区或文件。任何正在显示的数据都可以以显示的格式发送到打印机。可以处理大于内存的文件。

相关内容