压缩打包工具

压缩文件可以节省磁盘空间,提高传输效率,在移动端开发中尤为重要。

file

file用于识别文件类型。

[root@lwz dir1]# file 1.txt.gz 2.txt.bz2 3.txt.xz 4.txt
1.txt.gz:  gzip compressed data, was "1.txt", from Unix, last modified: Mon May 28 08:14:08 2018
2.txt.bz2: bzip2 compressed data, block size = 900k
3.txt.xz:  XZ compressed data
4.txt:     UTF-8 Unicode text

压缩工具

gzip

语法:

gzip [-d -c #] filename

参数:

  • -d:解压缩

  • -c:将压缩后的文件输出到指定目录下,不更懂源文件

  • #:压缩等级,1-9,数字越大压缩率越高,压缩时间越长,默认为9

注意:gzip不能压缩目录

示例:

# 压缩
$ gzip -c file.txt > file.txt.gz

# 解压缩
$ gzip -d file.txt.gz

# 查看gzip压缩包的内容
$ zcat file.txt.gz

bzip2

安装:

$ yum install -y bzip2

语法:

bzip2 [-d -z -c #] filename

参数:

  • -d:解压缩

  • -z:压缩,不加-z选项也可以压缩

  • #:压缩等级,1-9,数字越大压缩率越高,压缩时间越长,默认为9

注意:bzip2不能压缩目录。其用法和gzip基本相同,效果比gzip好。

示例:

# 压缩
$ bzip2 -z file.txt

# 解压缩
$ bzip2 -d file.txt.bz2

xz

语法:

xz [-d -z -c] filename

示例:

# 压缩并保留源文件
$ xz -c filename

# 解压缩到指定路径并保留源文件
$ xz -d -c filename.xz > /root/filename

用法与bzip2gzip类似,压缩程度最大,默认为6。不可压缩目录。

zip

zip在windows和linux中都比较常用,可以压缩文件和目录;
zip特点:zip压缩之后,源文件默认会保存。

安装:

$ yum install -y zip    #压缩包
$ yum install -y unzip  #解压缩包

语法:

$ zip [-r] filename.zip 源文件
$ unzip filename.zip

示例:

# 压缩单个或多个文件
$ zip filename.zip filename1 filename2 filename3

# 压缩多个文件或目录,压缩目录要加-r选项
$ zip -r filename.zip filename1 dirname1

# 解压缩
$ unzip filename.zip

# 解压缩到指定路径
$ unzip filename.zip -d /root/

zip解压文件不能指定文件名,压缩前是什么就是什么名字。

tar(打包工具)

tar可以把目录打包成一个文件,把所有文件整合成一个大文件,方便复制和移动。

语法:

tar [选项] filename

选项:

  • -c:创建压缩包

  • -x:解压压缩包

  • -f:指定目标文件名,如果多个选项组合使用,-f必须放在最后面

  • -z:使用gzip压缩

  • -j:使用bzip2压缩

  • -J:使用xz压缩

  • -t:查看压缩包内容

  • -v:显示压缩过程

  • -C:解压到指定路径

  • --exclude=filename:表示打包除了filename文件之外的所有文件。也可以用--exclude filename表示。filename可以是目录、占位符*、正则表达式等,特殊符号需要用双引号引起来,例如"*.txt"

示例:

# 打包
$ tar -cvf filename.tar filename

# 解包
$ tar -xvf filename.tar

# 查看压缩包内容
$ tar -tf filename.tar

# 打包/root目录并过滤/root目录下aa.txt文件和bb目录
$ tar -cvf filename.tar --exclude=/root/aa.txt --exclude=/root/bb /root

打包并压缩

# 打包的同时使用gzip压缩
$ tar -zcvf filename.tar.gz filename
# 解压
$ tar -zxvf filename.tar.gz

# 打包的同时使用bzip2压缩
$ tar -jcvf filename.tar.bz2 filename
# 解压
$ tar -jxvf filename.tar.bz2

# 打包的同时使用xz压缩
$ tar -Jcvf filename.tar.xz filename
# 解压
$ tar -Jxvf filename.tar.xz

# 打包的同时使用zip压缩
$ tar -cvf filename.tar.zip filename
# 解压
$ tar -xvf filename.tar.zip