mac/linux使用split和cat命令拆分合并tar.gz文件
问题描述:因为大文件上传到云服务器很花费时间,而且还可能传输失败,我们可以用分割文件的方法,对一个个小文件进行上传,再在linux服务器下合并起来。
假设我有一个tar.gz文件,它的大小为242mb。我想要分割为2个文件,每个150M(或以下)。
- 分割
split -b 150m -d -a 2 raw_sample.csv.tar.gz
"""
-b 150m:表示设置每个分割包的大小,单位还是可以k
-d :参数指定生成的分割包后缀为数字的形式,比如x0、x1。不设置的话可能为xa、ab
-a 2:来设定序列的长度(默认值是2),如果为1,就是名字为x0和x00的区别
"""
结果生成名字为x00、x01这两个文件。
- 合并
# 后面的名字为你想设置的合并后的文件名。
cat x00 x01 > raw_out.csv.tar.gz
# 解压缩,命令格式:tar -zxvf 压缩文件名.tar.gz
tar -zxvf raw_out.csv.tar.gz
小提示??:如果分割的文件太多,比如说我分割了x00~x23的文件,先利用ftp(或sftp)上传到服务器后,使用python脚本,生成cat x00~x23 > xxx.tar.gz命令,再复制到服务器命令行中,就可以啦!
- md5校验
看看两个文件是否一样,一样就没关系了。
md5 raw_sample.csv.tar.gz
# MD5 (raw_sample.csv.tar.gz) = d8919b32d2f24cc9ec1d6ea8bc002925
md5 raw_out.csv.tar.gz
# MD5 (raw_out.csv.tar.gz) = d8919b32d2f24cc9ec1d6ea8bc002925
可以看到本地的文件和服务器解压后的文件一样大,说明我们成功了。(图片中是FileZilla,一个FTP传输软件)
参考文献
- https://blog.csdn.net/u011035397/article/details/119966882
|