![Linux中如何在删除源文件的同时合并文件](https://linux22.com/image/148082/Linux%E4%B8%AD%E5%A6%82%E4%BD%95%E5%9C%A8%E5%88%A0%E9%99%A4%E6%BA%90%E6%96%87%E4%BB%B6%E7%9A%84%E5%90%8C%E6%97%B6%E5%90%88%E5%B9%B6%E6%96%87%E4%BB%B6.png)
我有 2 个大文件(每个文件约 27 GB),需要合并。它们原本是一个完整的 ZIP 文件,但我把它分开了。 cat 命令的问题是它创建了一个包含源文件内容的新文件,我不想这样做(因为我没有那么多的磁盘空间)。
有没有替代 cat 的方法,支持合并文件同时删除源文件?
答案1
(的总结讨论)
保存当前目录的分区中还剩下 28.3 GB,存档的第二部分是 27.8 GB。这意味着您应该能够将存档的第二部分附加到存档的第一部分。
假设这两部分称为part1
和part2
:
cat part2 >>part1
此后,part1
将是完整的存档文件(并且part2
可以删除)。
唯一的问题是,Unix 文件系统上通常有一个普通用户无法填充的保留缓冲区空间(通常是总分区大小的百分之几)。由于这里的尺寸限制非常严格,我不完全确定您是否在这些尺寸限制之内。
解决办法是要么以 root 用户身份运行(在填充保留空间方面不受限制),要么简单地清除一些不需要的大文件。
要以 root 身份运行,请启动 root shell 并按上述方式sudo -s
运行cat
,或者执行
sudo tee -a part1 <part2 >/dev/null