打包格式介绍
*.rar | rar程序压缩的文件 |
---|---|
*.7z | 7zip程序压缩的文件 |
*.tar | tar程序打包,为压缩的文件 |
*.gz | gzip程序(GNU zip)压缩的文件 |
*.xz | xz程序压缩的文件 |
*.bz2 | bzip2程序压缩的文件 |
*.tar.gz | tar打包,gzip程序压缩的文件 |
*.tar.xz | tar打包,xz程序压缩的文件 |
*.tar.bz2 | tar打包,bzip2程序压缩的文件 |
*.tar.7z | tar打包,7z程序压缩的文件 |
1.zip
1.1zip压缩文件
我们先查看一下文件
在这里,有些人会产生一些疑问,为什么我这两个程序包为什么都只有4kb?这里就涉及到之前讲过的一个概念,linux下一切皆文件。这两个文件夹也是文件,所以我们通过ls查看的事后,统计的大小都是文件夹本身的大小,而非文件夹中包含文件的大小。
如果我们要查看整个文件夹及其包含内容的大小,可以使用du命令查看。
参数:
-s 递归统计,计算文件夹下所有内容的大小
-h 人性化输出,默认输出单位为字节
现在,我们打算把Goland-2019.3.1这个文件夹用zip进行打包
先了解一下zip命令的基本用法
参数:
-r 递归打包,打包该文件夹下的所有内容
-q 安静模式,打包后,不显示任何信息
-o 表示输出文件,后面跟的就是被打包后的文件名
-级别 1-9级,9级打包速度最慢,文件最小,1级压缩最快,文件最大

这样,我们就把一个794m的文件压缩打包成了351m
此外,我们还可以设置压缩的级别。
我们在把这个文件用1级和9级进行压缩,并查看源文件,默认压缩,1级压缩,9级压缩的大小。
使用du命令进行查看。
du -h -d 0 Go*
-h 为人性化输出
-d 0 为文件深度0,默认会进行全盘搜索
由于zip格式,windows系统和linux系统在文本文件格式上有一些兼容性问题。比如换行符(为不可见字符),在windows为CR+LF:回车加换行,而在linux上为LF:换行,所以如果在不加处理的情况下,在linux上编辑的文本,在windows下打开,可能看起来是没有换行的。如果要解决这个问题,在linux下创建zip压缩包的事后加上-l参数即可。
-l 参数即为,把LF转换为CR+LF。
zip还可以使用-e参数,创建加密压缩包。详情可以自行查找。
1.2unzip解压缩
#安静模式unzip解压到当前目录
unzip GoLand-2019.3.1.zip
#安静模式解压到指定目录,如果没有ziptest目录,将会自动创建
unzip -q GoLand-2019.3.1.zip -d ziptest
#如果你并不想解压这个文件,而只是想看看这个文件里有什么东西,可以使用-l参数
unzip -l GoLand-2019.3.1.zip
同样的,使用unzip解压文件时,我们也要注意兼容性问题,不过这里的兼容性问题并不是上面提到的换行符问题,而是中文编码问题,通常windows系统上面创建的压缩文件,如果有包含中文的文档或者中文命名的文件夹,系统会自动默认采用GBK编码或其他适配的编码而在linux上默认采用的是utf-8编码,如果不加任何处理,直接解压出来可能会出现中文乱码的问题(有时候它会自动帮你解决),为了解决这个问题,我们可以在解压时,指定编码类型。
使用大写的O参数。
unzip-O GBK 中文压缩文件名.zip
2.tar
在linux上,更常用的其实是tar工具,tar原本只是个打包工具,只是同时还实现了对7z,gzip,xz,bzip2等工具的支持,这些压缩工具本身只能实现对文件或目录(单独压缩目录中的文件)的压缩,没有实现对文件的打包压缩,所我们也无需在单独学习其他工具,tar的解压和压缩透视同一个命令,只是使用的参数不同,所以使用起来也更为方便一些。
2.1tar仅打包,不压缩
tar -P -cf GoLand-2019.3.1.tar /home/compton/appplication/GoLand-2019.3.1
参数:
-P 保留绝对路径
-c 创建一个tar文件
-f 指定创建的文件名,-f后必须跟指定的文件名。
注意:
指定的文件名必须写在-f后
#可以写为:
tar -P -f GoLand-2019.3.1.tar /home/compton/appplication/GoLand-2019.3.1 -c
#不能写为:
tar -P -fc GoLand-2019.3.1.tar /home/compton/appplication/GoLand-2019.3.1
2.2tar解包
#解包至一个已存在的目录tardir
tar -xf GoLand-2019.3.1.tar -C tardir
2.3tar压缩
2.3.1打包并压缩(gz)
如果想要使用gzip压缩成tar.gz格式,只需要选用参数-z
tar -czf GoLand-2019.3.1.tar.gz /home/compton/appplication/GoLand-2019.3.1
2.3.2解压
tar -xzf GoLand-2019.3.1.tar.gz
至于其他格式,也只需要更换参数即可。
参数:
-z tar.gz
-J tar.xz
-j tar.bz2
更多参数,参阅man文档。
练习:
创建一个123文件,分别用zip和tar进行压缩,并解压缩。
touch 123
zip -q -o 123.zip 123
tar -czf 123.tar.gz 123
unzip -q 123.zip -d ziptest
mkdir tardir
tar -xzf 123.tar.gz -C tardir
tree查看这个目录