一个文件共享另一个文件的一部分

一个文件共享另一个文件的一部分

我有一个文件 A,它首先被创建,然后文​​件 B 将被创建取决于文件A.然后我将

  1. cat 文件 A 和文件 B 以创建文件 C;
  2. 我将写入文件 C 的 B 部分。

我将重复步骤 1 和步骤 2。

----------------------------
 A   |    B (write here)    | notice: A, B, C are all binary file
----------------------------

现在我想知道 B 是否可以共享文件 C 的 B 部分,这样我重建时就不需要写入 C(即跳过步骤 2)。结果可能如下所示:

----------------------------
 A   |    link to B        | 
----------------------------

问: 那么是否有任何 Linux 命令可以做到这一点?

答案1

您可以用来dd写入等于“A”的字节维度的偏移量。

假设“C”= 5KB(“A”= 1KB 且“B”= 4KB);

要将“B”清零:

dd if=/dev/zero of=C iflag=fullblock oflag=seek_bytes seek=1000 bs=1000 count=4 

用另一个文件“new_B”替换“B”(如果“new_B”大于“B”,则“C”的大小将等于“new_B”和“B”的差值):

dd if=new_B of=C oflag=seek_bytes seek=1000

如果要写入的数据是另一个命令的输出,则另一个选择是将数据直接通过管道传输到dd

[...] | dd of=C oflag=seek_bytes seek=1000

相关内容