Linux压缩那些事

简介

本文主要介绍互联网上最主流的两种压缩格式(rar和zip)文件在Linux系统上的压缩和解压操作,包括分卷压缩。本文不展开过多详细的命令选项的讲解,只列举实际使用Linux系统最常用的一些命令

ZIP

压缩

将多个文件压缩为一个zip压缩包的命令如下。

zip myfile.zip file1 file2 …

将多个同种文件压缩为一个zip包的命令如下,如下面将所有jpg文件压缩到一个压缩包里。

zip myfile.zip *.jpg

将一个目录压缩为一个压缩文件,命令如下。

zip -r myfile.zip folder

将一个目录下的所有文件压缩为一个压缩包,命令如下。

zip -r myfile.zip folder

解压

解压某个zip文件,命令如下。

unzip myfile.zip

将某个zip文件解压到某个特定目录下,命令如下。

unzip myfile.zip -d /home/folder

以不经过询问直接覆盖原文文件的方式将zip文件解压到某个特定目录下,命令如下。

unzip -o -d /home/folder myfile.zip

分卷

我们其实经常遇到大文件需要分卷压缩的情况(如百度网盘限制单文件上传大小、微信限制单文件发送大小),因此也经常需要解压分卷压缩的文件。这在有图形软件的Windows上是很容易的事情,但对于没有图形界面的Linux服务器,则需要了解一下命令。

首先我们来看如何分卷压缩文件,其实分为两个步骤,那就是压缩分卷,先产生一个大的压缩包在对其进行分卷即可。

先是生成压缩包。

zip test.zip test.mp4

然后对压缩包进行分卷拆分,-s命令指定每个卷的大小,其中k表示kB,m表示MB,g表示GB而t表示TB。

zip -s 1g test.zip --out ziptest

比如我这里将一个2.9G的大文件拆分为1G的分卷文件,产生如下的一些文件,其中test.zip是原始压缩文件,后面的ziptest前缀的就是分卷压缩的结果,通常我们收到的分卷压缩文件就是这种格式。

.
├── test.zip
├── ziptest.z01
├── ziptest.z02
└── ziptest.zip

接着,我们来看如何分卷解压文件,最常用的方法就是将多个同一前缀的分卷压缩文件合并为一个压缩文件然后解压,这个过程分为合卷解压两个步骤。

我们首先来看合卷操作,网上最多的教程就是使用cat命令进行文件合卷,如下。

cat ziptest.z* > ziptest.single.zip

然后接着对该合卷文件进行解压即可,命令如下。

unzip ziptest.single.zip

但是此时有的分卷压缩包会出现如下错误,这个错误是压缩文件损坏,但是事实上我们这里的压缩文件并没有经过ftp等传输一直在本机上,因此我个人觉得是cat合并时顺序不当。(事实上,我这里因为有拆分前的zip文件,我对比了一下它和我们使用cat合并后的zip文件的md5值,是不一样的。

在这里插入图片描述
因此,既然是zip拆的,我们用zip来合并文件,我们指定分卷文件序列中唯一的zip后缀的文件并进行修复(-F选项)后输出为单文件。此时我们查看合并后的文件的md5值,发现和原始分卷之前大压缩文件一致。

zip -F ziptest.zip --out ziptest.single.zip

然后解压文件即可。

unzip unzip ziptest.single.zip

RAR

上一节我们介绍了ZIP文件的压缩解压以及分卷压缩和解压,由于RAR的分卷文件实际遇到的并不多,因此这里只设计RAR压缩文件的压缩和解压。

压缩

将多个文件压缩为一个rar压缩包,命令如下。

rar a myfile.rar file1 file2 …

将多个同种文件压缩为一个zip包的命令如下,如下面将所有jpg文件压缩到一个压缩包里。

rar a myfile.rar *.jpg

解压

将rar压缩文件解压到当前目录。

unrar e myfile.rar 

将rar文件解压到指定目录。

unrar x test.rar /tmp 

总结

本文主要介绍了Linux系统上常见的ZIP和RAR格式的压缩和解压操作,包括分卷压缩和分卷解压。最后,如果读到了这里并且我的文章对你有所帮助,欢迎一键三连,你的支持是我不懈创作的动力。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周先森爱吃素

你的鼓励是我坚持创作的不懈动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值