Linux 文件的打包压缩,常见压缩工具gzip


压缩和解压

压缩目的:为了节约磁盘空间。

常见压缩工具

gzip --- 后缀:.gz

bzip2 --- 后缀:.bz2

xz --- 后缀:.xz

compress --- 后缀: .z

#压缩比例:xz > bzip2 > gzip > compress

#以上这些工具只能对普通文件压缩,不能压缩目录文件。

zip --- 后缀:.zip  #zip可以对 目录文件 进行压缩。且windows也支持zip格式

compress 和 uncompress

这个压缩命令来源于ncompress包,使用它压缩文件的时候会生成.z结尾的压缩文件。

#是一个不常用的压缩工具

gzip和gunzip

#gizp是应用最广泛的压缩工具,会生成.gz结尾的压缩文件。来源: gzip包

#gunzip:解压工具

#格式:
gzip [选项] 文件

# gzip常用选项:
 -c 将压缩数据输出到标准输出中,并保留源文件

 -d decompress。解压缩,相当于gunzip

 -k, keep,保留源文件

范例

gzip -c messages >messages.gz #使用-c选项,为了不让压缩数据输出到屏幕上,而是重定向到压缩文件中,实现压缩文件时不删除源文件

gzip -c -d messages.gz > messages #-d:压缩目录文件

zcat messages.gz > messages #zcat:不解压文件的情况下看里面的内容

cat messages | gzip > m.gz

bzip2和bunzip2

#使用bzip2压缩文件会生成.bz2结尾的压缩文件,这个命令来源于bzip2包

#格式:
bzip2 [选项] 文件

#bzip2常用选项:
-d 解压缩

范例

压缩:
bzip2 filename

解压缩:
bunbzip2 filename

xz 和 unxz

#xz压缩文件会生成.xz结尾的压缩文件。这个命令来源于xz软件包

# 常用选项
-d 解压缩

#用法和gzip差不多

zip 和 unzip

#zip可以实现目录打包,多个文件合成一个文件压缩,生成.zip结尾的文件。但是可能会丢失属性信息,建议用tar代替.


#常用选项:
-r: 压缩目录文件的时候需要添加这个参数

-d: 解压到指定目录

#格式:
zip 压缩成的文件名 需要压缩的文件

范例:

#打包并压缩
zip  -r /backup/sysconfig.zip /etc/sysconfig/

#默认解压缩至当前目录
unzip /backup/sysconfig.zip  

#解压缩至指定目录,如果指定目录不存在,会在其父目录(必须事先存在)下自动生成
unzip /backup/sysconfig.zip  -d /tmp/config

打包和解包

tar 工具

tar: Tape ARchive 磁带归档,实现对目录和多个文件打包一个文件,并且可以压缩,保留文件属性不丢失,常用于备份功能

#特点:
先把多个文件打成一个包,然后再进行指定格式压缩。

#格式
打包:
tar -cf 打包成的文件名.tar  需要打包的文件
#打包的过程不会压缩,只是把多个文件放在同一个包里面。
#-f必须放在参数的最后面,用于指定打包成的文件

解包:
tar -xf 包名
#把一个包拆开,露出里面的文件。

打包的时候进行压缩:
tar -czf或-cjf 需要压缩的文件
#z表示采用gzip这个工具来压缩,j表示采用bzip2这个工具来压缩

解包的时候进行解压:
tar -xzf或zjf 需要解压的文件
#默认解到当前目录下,需要解压到指定位置,可以使用 -C 指定。

查看包里面有那些文件:
tar -tf 需要查看的文件


tar的常用选项:

 -f: 打包成一个文件

 -v: 显示过程

 -c:打包

 -x:解压文件

 -z:默认调用gzip命令来进行压缩

 -j:调用bzip2命令来进行压缩

 -C:指定路径

 -p:保留原始属性和权限

split工具

作用:大文件切割成多个小文件。

#选项:
-b: 指定大小 --- -b size

-d: 需要进行切割的文件,切割出来的文件会自动加数字结尾

范例

#分割大的 tar 文件为多份小文件
split -b Size –d tar-file-name prefix-name

#切割完成后组合成大文件的方法: --- 重定向
cat file1 ... filen  > filename

cpio

 历史悠久的打包工具,目前很少使用。

相关内容