Linux中分卷压缩和合并解压

22 篇文章 1 订阅
20 篇文章 0 订阅


大家可能会遇到这样的情况,一个文件很大,压缩成一个压缩包后还是很大,不方便传输(比如需要微信给别人,微信限定传输的文件大小为100M),那我们可以通过分卷压缩成几个压缩包,然后分卷传输之后在合并解压,再通过md5码校验两个文件是否一致。

一、通过tar分卷压缩及解压

Linux中tar命令语法及参数解释

1. 分卷压缩

先将文件普通压缩

tar -zcf split.gz split.dat

再将压缩好的压缩包分割

split -b 100m -d -a 1 split.gz split.tar.gz.

合并成一条命令

tar -zcf - split.dat | split -b 100m -d -a 1 - split.tar.gz.

命令中相关参数解释:
-b参数后是你想要的每个包的大小,只输入数字默认单位是byte
输入数字+K,单位是KB
输入数字+M,单位是MB
输入数字+G,单位是GB
依次类推T, P, E, Z, Y

-d参数指定生成的分割包后缀为数字的形式
-a x来设定序列的长度(默认值是2),这里设定序列的长度为1

注意: 上面命令中管道符两边都有一个’-’,可以理解为占位符用来管道传输的
比如第一个’-‘就是将split.dat压缩后进行匿名压缩包,再将匿名压缩包传输到管道符右边,右边’-'接收左边传输的结果压缩包,再将其分割

2. 解压

第一种方法:先将分卷的压缩包合并为一个压缩包

cat split.tar.gz.* > split_bak.tar.gz

再解压合并的压缩包到指定文件夹

tar -zxv split_bak.tar.gz -C bak/

合并成一条命令

cat split.tar.gz.* | tar -zxv - -C bak/

3. 校验两个文件md5码是否一致

md5sum split.dat

md5sum bak/split.dat

二、通过zip分卷压缩及解压

Linux中zip语法及参数解释

1. 分卷压缩

先压缩成一个压缩包

zip split.zip split.dat

再将压缩包分割

zip -s 100m split.zip --out ziptest

zip命令无法像上面tar命令一样进行合并命令,合并命令会报错如下:

zip - split.dat | zip -s 100m - --out ziptest
zip error: Invalid command arguments (cannot write zip file to terminal)

无效的命令参数(无法将zip文件写入终端)

2. 解压

Linux中unzip语法及参数解释
先将分卷的压缩包合并为一个压缩包

cat ziptest.* > ziptest_bak.zip
unzip ziptest_bak.zip -d bak/

3. 校验两个文件md5码是否一致

md5sum bak/split_bak.dat
md5sum split.dat
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值