1.压缩
gzip工具
语法:gzip filename 压缩文件,只能压缩文件,不能压缩目录;
生成filename.gz的压缩文件,源文件会消失。
-n:为压缩级别1-9,默认为级别6
-d:解压缩文件
gunzip filename.gz 解压缩文件,解压后,原压缩文件也会消失。
zcat filename.gz 查看压缩文件的内容
bzip2工具
语法:bzip2 filename 压缩文件,只能压缩文件,不能压缩目录;
生成filename.bz2的压缩文件,源文件会消失。
-z:压缩文件,可加可不加,都能压缩文件。
-d:解压缩文件
bunzip2 filename.bz2 解压缩文件,解压后,原压缩文件也会消失。
bzcat filename.bz2 查看压缩文件的内容
xz工具
语法:xz filename 压缩文件,只能压缩文件,不能压缩目录;
生成filename.xz的压缩文件,原文件会消失。
-d:解压缩文件
unxz filename.xz 解压缩文件,解压后,原压缩文件也会消失
xzcat filename.xz 查看压缩文件的内容
gzip、bzip2、xz这三个压缩工具,都是只能压缩文件,不能压缩目录。
-d参数都可以直接解压。
压缩或者解压的同时,源文件都会消失。
可以同时压缩几个文件,但不会直接压缩到一个文件里面,而是各自生成压缩文件。
这个几工具产生的压缩包都可以在windows中,找到对应的工具去解压;
包括下面的tar打包工具也一样。
zip和unzip工具
这两个工具都要另外安装
yum install -y zip
yum insrall -y unzip
zip是压缩工具,unzip是解压缩工具。
压缩文件:zip filename.zip filename
压缩目录:zip -r filename.zip filename
解压缩:unzip filename.zip
unzip -l filename.zip 列出压缩包里面的文件列表清单
unzip -d /tmp/ filename.zip 指定解压后的路径。把filename.zip解压到/tmp/目录下。
zip和unzip压缩和解压缩后,源文件都不会消失。可以压缩文件和目录。
zip压缩多个文件时,是把几个文件或目录压缩到同一个文件下面的
unzip解压的时候,如果有相同文件,会提示是否覆盖
yum provides '*/cat' 查找产生此命令的安装包
普通文件的压缩率
zip=gzip<bzip2<xz
2.打包压缩
tar:将多文件和目录一起打包成一个文件。打包的时候会整理文件,把实际大小占不了一个‘块’
的文件整合起来,这样会节省一部分空间。
语法:tar [-zjcxvfpP ] filename.tar.XX filename(文件或目录),XX指的是压缩方法
-c 创建
-v 显示打包过程
-f 打包或解包成指定的文件名,f参数与其它多个参数组合使用时,放在最后。
-x 解包或解压缩包
-t 显示tar包的文件列表
-z gzip压缩
-j bzip2压缩
-J xz压缩
-u 追加打包内容
-C 指定解包后目录
tar -cvf filename.tar filename 把filename的文件和目录打包成名为filename.tar的包
tar -xvf filename.tar -C /tmp/ 把filename.tar的包解包,指定目录到/tmp/下面
无论是打包还是解包,源文件都不会消失。解包的话,会直接覆盖已经存在的目录或文件,不作询问。
tar -czvf filename.tar.gz filename
把filename的文件和目录打包并用gzip压缩为filename.tar.gz的包
tar -cjvf filename.tar.bz2 filename
把filename的文件和目录打包并用bzip2压缩为filename.tar.bz2的包
tar -xzvf filename.tar.gz -C /tmp/
将filename.tar.gz的gzip压缩包,解压到/tmp/目录下
tar -xjvf filename.tar.bz2 -C /tmp/
将filename.tar.bz2的bzip2压缩包,解压到/tmp/目录下
tar -cjvf filename.tar.bz2 --exclude '1*' --exclude '*.sh' /etc/
将/etc/目录下的所有文件和目录用bzip2压缩的同时打包成filename.tar.bz2的文件;
但不包含‘1’开头和‘.sh’结尾的文件和目录
tar -u filename -vf filename.tar 不能写成-uvf
将文件filename追加到filename.tar这个包里去,解包后,旧文件会被新文件覆盖。
tar --delete -f filename.tar filename
从filename.tar包中删除指定文件filename
使用不同的压缩工具进行打包压缩的时候,最好以对应的工具的缩写结尾,避免搞不清楚是用什么工具压缩。
file命令可以查看压缩文件所用的压缩工具