我想使用 shell 命令有效地合并二进制文件,我很快找到了像这样的经典方法:
cat file1 file2 > file3
不错,但是:
- 很慢。 IO访问速度慢。
- 它需要额外的空间。我不想复制文件。只需将它们连接起来即可。
文件系统非常适合处理文件碎片。我们不能使用这种机制来合并文件吗?
答案1
答案2
list.txt
将文件名按顺序放入名为“以换行符分隔”的文本文件中。然后在 bash 中运行:
while read line; do echo -n . ; dd if="$line" of=out status=none conv=notrunc oflag=append; done < list.txt
这将在当前目录中创建串联文件“out”。
答案3
dd if=firstfile.raw > completedfile.raw
dd if=nfile.raw >> completedfile.raw
dd if=lastfile.raw >> completedfile.raw