1 Star 0 Fork 91

wudong / Linux学完就忘系列

forked from baoke / Linux学完就忘系列 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
21.压缩工具.md 3.74 KB
一键复制 编辑 原始数据 按行查看 历史
baoke 提交于 2019-07-20 09:07 . 更新 21.压缩工具.md

压缩和解压缩工具

压缩比:根据算法好坏,压缩效果有所差异
目的:时间换空间
CPU的时间 --> 磁盘空间

.z compress/uncompress(了解,目前没人用)
.gz gzip/gunzip
.bz2 bzip2/bunzip2
.xz xz/unxz
.lzma lzma/unlzma
.zip zip/unzip
tar,cpio

gzip/gunzip/zcat

gzip [OPTION]... FILE...
-d:解压缩,相当于gunzip;
-#:指定压缩比,默认是6;数字(1-9)越大压缩比越大,意味着所需要消耗的CPU时间周期越多,节约的空间也越多;一般默认压缩比是比较优秀的设定;
-c:将压缩结果输出至标准输出;

cp /var/log/messages /tmp
cd /tmp
#压缩,压缩会删除源文件
gzip message
#使用zcat直接查看压缩后的文本文件内容,如果文件非常大,建议不要使用zcat来查看.适合查看小文件
zcat message.gz
#解压
gunzip message.gz

#压缩,指定压缩比为9
gzip -9 message
#解压
gzip -d messages.gz

#保留源文件,并将压缩文件从定向在当前目录
gzip -c messages > messages.gz

bzip2/bunzip2/bzcat

bzip2 [OPTION]... FILE...
-d:解压缩
-#:指定压缩比,默认是6;数字(1-9)
-k:keep,压缩保留源文件

#压缩,压缩会删除源文件
bzip2 messages
#解压缩
bzip2 -d messages.bz2

#压缩,保留源文件
bzip2 -k messages

#查看压缩后的文本文件内容
bzcat messages.bz2

xz/unxz/xzcat

xz [OPTION]... FILE...
-d:解压缩
-#:指定压缩比,默认是6;数字(1-9)
-k:keep,压缩保留源文件

#压缩,压缩会删除源文件
xz messages

注意:以上三款压缩工具只能用来压缩文件,不能用于压缩目录

cd /tmp
mkdir test
cd test
cp /var/log/*.log ./
cp /etc/rc.d/init.d/functions ./
cp /var/log/messages ./

接上面指令,看下图压缩目录的,三种命令都不支持

tar

tar用于归档,可以理解为打包
tar [OPTION]... FILE...
tar命令的选项可以不加-

创建归档、展开归档、查看附档都要使用-f选项,它用于创建、展开、查看归档所指定的文件

(1) 创建归档
-c -f /PATH/TO/SOMEFILE.tar FILE... -cf /PATH/TO/SOMEFILE.tar FILE...

(2) 展开归档
-xf /PATH/FROM/SOMEFILE.tar
-xf /PATH/FROM/SOMEFILE.tar -C /PATH/TO/SOMEDIR

(3) 查看归档文件的列表
-tf /PATH/FROM/SOMEFILE.tar

#注意f要在c的后面,用于指定创建的归档的文件(因为/tmp/mylog.tar是-f的参数,所以必须卸载-c后);归档并不会删除源文件
tar -cf /tmp/mylog.tar *.log

#展开归档,tar的选项可以不带"-"
tar xf mylog.tar
#使用-C指定展开归档文件路径
tar xf mylog.tar -C /tmp/newtest/

#查看归档文件的列表
tar -tf mylog.tar

#对归档文件进行压缩,会删除mylog.tar源文件
xz mylog.tar

归档完成后通常需要压缩,结合此前的压缩工具,就能实现压缩多个文件了;
(4) 归档并压缩
-z:使用gzip2来进行压缩

创建归档并压缩:
-zcf /PATH/TO/SOMEFILE.tar.gz File...
展开归档并解压缩:
-zxf /PATH/TO/SOMEFILE.tar.gz
tar命令可以在展开时,通过后缀名自动识别使用什么类型的压缩,所以展开归档时,可以省略-z
-xf /PATH/TO/SOMEFILE.tar.gz

-j:使用bzip2来进行压缩
-jcf
-jxf 可以省略j

-J:使用xz来进行压缩
-Jcf
-Jxf 可以省略J

#创建归档并使用gzip2压缩    
tar -zcvf mylog2.tar.xz test
#以上是对文件夹进行压缩归档,所以解压出来也带文件夹;这里省略了-z选项
tar -xf mylog2.tar.xz 

zip

zip/unzip

#打包压缩
zip mylog.zip ./test
#解压
unzip mylog.zip

练习:

下载redis-3.0.2.tar.gz,展开至/tmp目录;而后重新归档压缩为xz格式;

Shell
1
https://gitee.com/wudongmeng/linux.git
git@gitee.com:wudongmeng/linux.git
wudongmeng
linux
Linux学完就忘系列
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891