我有一个文件 A,它首先被创建,然后文件 B 将被创建取决于文件A.然后我将
- cat 文件 A 和文件 B 以创建文件 C;
- 我将写入文件 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