【发布时间】:2012-11-04 20:29:42
【问题描述】:
假设我有 2 个文件,每个文件大小为 100G。我想将它们合并为一个,然后将它们删除。在linux中 我们可以使用
cat file1 file2 > final_file
但这需要读取 2 个大文件,然后再写入一个更大的文件。是否可以只将一个文件附加到另一个文件,这样就不需要 IO?由于文件的元数据包含文件的位置和长度,我想知道是否可以更改文件的元数据来进行合并,所以不会发生 IO。
【问题讨论】:
-
找到解决这个问题的方法的人可能会发现“hungrycat”很有用。饥饿猫在标准输出上打印文件的内容,同时释放文件占用的磁盘空间:github.com/jwilk/hungrycat