命令 zip 用于压缩文件使用,zip压缩格式是Windows与Linux等多平台通用的压缩格式
2023-04-12 13:47:08
卿卿小孩
82
在 Linux 系统中,命令 zip 用于压缩文件使用,zip压缩格式是Windows与Linux等多平台通用的压缩格式。和gzip命令相比,zip命令 压缩文件后不仅不会删除源文件,而且还可以压缩目录。
语法:
zip [选项] [文件或目录]
参数说明:
-r 将指定目录下的所有文件和目录一起压缩
-x 压缩文件时排除某个文件
-q 不显示压缩信息
案例:
压缩test.py文件
[root@VM_0_5_centos ~]# cd test [root@VM_0_5_centos test]# ls test01.py test.log test.py [root@VM_0_5_centos test]# zip testpy.zip ./test.py adding: test.py (stored 0%) [root@VM_0_5_centos test]# ls test01.py test.log test.py testpy.zip [root@VM_0_5_centos test]#
压缩目录
[root@VM_0_5_centos test]# mkdir test01 [root@VM_0_5_centos test]# ls test01 test01.py test.log test.py testpy.zip [root@VM_0_5_centos test]# zip test01.zip ./test01 adding: test01/ (stored 0%) [root@VM_0_5_centos test]# ls test01 test01.py test01.zip test.log test.py testpy.zip [root@VM_0_5_centos test]#
排除压缩 (排除test.log文件)
[root@VM_0_5_centos test]# ls test01 test01.py test01.zip test.log test.py testpy.zip [root@VM_0_5_centos test]# zip -r all.zip ./* -x test.log adding: test01/ (stored 0%) adding: test01.py (stored 0%) adding: test01.zip (stored 0%) adding: test.py (stored 0%) adding: testpy.zip (stored 0%) [root@VM_0_5_centos test]# ls all.zip test01 test01.py test01.zip test.log test.py testpy.zip [root@VM_0_5_centos test]# rm -rf test01 test01.py test01.zip test.log test.py testpy.zip # 除了压缩文件,删除其他文件 [root@VM_0_5_centos test]# unzip all.zip # 解压文件看是否有test.log文件 Archive: all.zip creating: test01/ extracting: test01.py extracting: test01.zip extracting: test.py extracting: testpy.zip [root@VM_0_5_centos test]# ls all.zip test01 test01.py test01.zip test.py testpy.zip # 解压后没有test.log文件 [root@VM_0_5_centos test]#
将多个文件压缩为一个zip压缩包的命令如下。
zip myfile.zip file1 file2 …
将多个同种文件压缩为一个zip包的命令如下,如下面将所有jpg文件压缩到一个压缩包里。
zip myfile.zip *.jpg
将一个目录压缩为一个压缩文件,命令如下。
zip -r myfile.zip folder
将一个目录下的所有文件压缩为一个压缩包,命令如下。
zip -r myfile.zip folder
分卷
工作中经常遇到大文件需要分卷压缩的情况(如百度网盘限制单文件上传大小、微信限制单文件发送大小),因此也经常需要解压分卷压缩的文件。这在有图形软件的Windows上是很容易的事情,但对于没有图形界面的Linux服务器,则需要了解一下命令。
首先我们来看如何分卷压缩文件,其实分为两个步骤,那就是压缩和分卷,先产生一个大的压缩包在对其进行分卷即可。
先是生成压缩包。
然后对压缩包进行分卷拆分,-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