压缩文件,可以节省磁盘空间,在传输过程中还能节省网络带宽; 打包文件,将一个目录合并成一个文件; 常见压缩文件后缀名有:

.gz:表示由gzip压缩工具压缩的文件; .bz2:表示由bzip2压缩工具压缩的文件; .xz:表示由xz压缩工具压缩的文件; .zip:表示由zip压缩工具压缩的文件; .tar:表示由tar打包程序打包的文件; .tar.gz:先tar打包,然后再gzip压缩的文件; .tar.bz2:先tar打包,然后bzip2压缩的文件; .tar.xz:先tar打包,再xz压缩的文件;

压缩工具

gzip压缩工具

注意:无法压缩目录,压缩或解压缩文件后源文件会消失; 格式: gzip命令的格式为gzip [-d#] filename,其中#为1~9的数字。 -d:该参数在解压缩时使用。 -#:表示压缩等级,1为最差,9为最好,6为默认。 -c :指定压缩或解压的目标位置:gunzip -c 压缩包 > 目标文件

压缩: 将1.txt压缩为1.txt.gz

[root@jinkai01 tmp]# ls 1.txt vmware-root_6331-1723602126 [root@jinkai01 tmp]# gzip 1.txt [root@jinkai01 tmp]# ls 1.txt.gz vmware-root_6331-1723602126

解压缩:gzip -d 或 gunzip 都可以解压缩

[root@jinkai01 tmp]# gzip -d 1.txt.gz [root@jinkai01 tmp]# ls 1.txt vmware-root_6331-1723602126

bzip2压缩工具

压缩级别有1~9,默认级别是9。压缩时,加或不加-z选项都可以压缩文件 注意:bzip无法压缩目录; 格式: bzip2 [-d][-z][文件名] 压缩: 使用-z参数压缩,不附带-z参数也可压缩文件;

[root@jinkai01 tmp]# bzip2 1.txt [root@jinkai01 tmp]# ls 1.txt.bz2 vmware-root_6331-1723602126

解压缩:bzip2 -d 或 bunzip2 都可以解压缩 使用-d参数解压缩;

[root@jinkai01 tmp]# bzip2 -d 1.txt.bz2 [root@jinkai01 tmp]# ls 1.txt vmware-root_6331-1723602126

xz压缩工具

注意:与bzip2一样无法压缩目录,-d解压,-z压缩,不带-z也可压缩; 格式: xz [-z][-d][文件名] 压缩:

[root@jinkai01 tmp]# xz 1.txt [root@jinkai01 tmp]# ls 1.txt.xz vmware-root_6331-1723602126

解压缩:

[root@jinkai01 tmp]# xz -d 1.txt.xz [root@jinkai01 tmp]# ls 1.txt vmware-root_6331-1723602126zip

zip

注意:zip可以压缩目录与文件,压缩目录时需要指定目录下面的文件;压缩或解压缩的源文件是存在的; 格式: zip [压缩后的文件名] [压缩源文件] 压缩目录: 必须在目录后面加*表示所有文件;

[root@jinkai01 tmp]# zip a.zip a/* adding: a/1.txt (stored 0%) adding: a/2.txt (stored 0%) adding: a/3.txt (stored 0%) adding: a/b/ (stored 0%) [root@jinkai01 tmp]# ls 1.txt a a.zip vmware-root_6331-1723602126

压缩二级目录或多级目录: 必须加参数-r强制;

[root@jinkai01 tmp]# zip -r a.zip a/* updating: a/1.txt (stored 0%) updating: a/2.txt (stored 0%) updating: a/3.txt (stored 0%) updating: a/b/ (stored 0%) adding: a/b/22.txt (stored 0%) adding: a/b/11.txt (stored 0%)

解压缩: 使用unzip就行解压缩,没有unzip命令,可以使用yum install -y unzip 来安装

[root@jinkai01 tmp]# unzip a.zip Archive: a.zip replace a/1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A extracting: a/1.txt
extracting: a/2.txt
extracting: a/3.txt
extracting: a/b/22.txt
extracting: a/b/11.txt

tar打包工具

tar本身是一个打包工具,可以将目录打包成一个文件,将所有文件整合成一个大文件,方便复制或移动; 格式:

tar [参数][文件名] -z:表示同时用gzip压缩; -j:表示同时用bzip2压缩; -J:表示同时用xz压缩; -x:表示解包或者解压缩; -t:表示查看tar包里的文件; -c:表示创建一个tar包或者压缩文件包; -v:表示可视化; -f:后面跟文件名,也就是压缩后的文件; -p:表示使用源文件的属性; -P:表示可以使用绝对路径;

打包文件:

[root@jinkai01 tmp]# tree a a ├── 1.txt ├── 2.txt ├── 3.txt └── b ├── 11.txt └── 22.txt

1 directory, 5 files [root@jinkai01 tmp]# tar -cvf a.tar a/ a/ a/3.txt a/2.txt a/1.txt a/b/ a/b/11.txt a/b/22.txt [root@jinkai01 tmp]# ls 1.txt a a.tar vmware-root_6331-1723602126

解包文件:

[root@jinkai01 tmp]# tar -xvf a.tar a/ a/3.txt a/2.txt a/1.txt a/b/ a/b/11.txt a/b/22.txt

打包并压缩文件

[root@jinkai01 tmp]# tar -cvzf a.tar.gz a/ a/ a/1.txt a/2.txt a/3.txt a/b/ a/b/22.txt a/b/11.txt [root@jinkai01 tmp]# ls 1.txt a a.tar a.tar.gz vmware-root_6331-1723602126

解包并解压缩文件

[root@jinkai01 tmp]# tar -xzvf a.tar.gz a/ a/1.txt a/2.txt a/3.txt a/b/ a/b/22.txt a/b/11.txt

可以使用tar -tf 直接查看压缩包里面的文件

[root@jinkai01 tmp]# tar -tf a.tar.gz a/ a/3.txt a/2.txt a/1.txt a/b/ a/b/11.txt a/b/22.txt