我有一台 Linux (Kubuntu) 系统,里面有一个大文件 (~20Gb),我想处理一下。具体来说,我想将另一个大文件 (~12Gb) 的全部内容复制到此文件的中间,并保留文件未被覆盖的部分。
这就是我想要发生的事情,管道之间的文本代表文件内容:
前:
outfile: |abcdefghijklmnopqrstuvwxyz|
infile: |123456789|
后:
outfile: |abcdef123456789pqrstuvwxyz|
(infile is here ^^^^^^^^^)
我尝试了这个:
dd if=infile of=outfile seek=162
(162 是我要在 outfile 中偏移的扇区数)
但事实是这样的:
outfile: |abcdef123456789|
(missing part of outfile ^)
做这个的最好方式是什么?
答案1
您需要为 dd 指定 conv=notrunc。来自手册页
任何常规输出文件都会被截断,除非指定了 notrunc 转换值。如果输出文件的初始部分被搜索过去(参见 oseek 操作数),则输出文件会在该点被截断。