Linux下进行大文件的拆包与合并

简介:

当在网络上进行超大文件传输的时候就需要用到两种技术,其一是断点续传,保证文件传输得到的数据的完整性,另外一个就是进行拆包与合并。今天的主角就是拆包与合并,将一个大文件拆完之后进行逐个传输,然后再进行合并,且要保证文件的完整性。

一、普通拆包与合并

Linux 下执行命令:

split -b 1024m large_file.log  large_file.log.

将一个超大文件 large_file.log 拆成以 1024m 为单位大小的文件,切记最后面的 . 不要忘记了。当文件拆完之后,生成的文件名大致如下:

large_file.log.aa
large_file.log.ab
large_file.log.ac

然后在 Linux 下合并命令如下:

cat large_file.log.a* > newLog.log

这样就还原成原来的文件了,那么如果我们将拆成的小文件又传输到了 Windows 下,想在 Windows 下进行合并应该怎么做呢?
在 Windows 下应该执行 cmd 命令:

copy /B "large_file.log.aa"  +  "large_file.log.ab"  +  "large_file.log.ac"  "large_file.log"

二、使用 tar 进行压缩拆包以及合并

将 log 文件夹下所有文件进行压缩,然后进行拆包

tar cjf - log/ | split -b 1024m - log.tar.bz2.

合并包:

cat log.tar.bz2.a* | tar xj

这样就直接还原成原来的 log 文件夹了

或者使用如下命令合并为 bz2 文件格式的压缩型文件,更加方便传输,但是使用的时候需要进行手动解压,解压成 log 文件夹。

cat log.tar.bz2.a* > log.tar.bz2

发表评论

电子邮件地址不会被公开。必填项已用 * 标注