【Linux基本操作】系列01:深入浅出Linux压缩命令

压缩技术:比如存1时,共8bit,最右边为1,其它7位为0,压缩时将0压缩。

或者将重复数据压缩。

常用命令:

compress(淘汰)

gzip(常用) 与 zcat

bzip2(常用)   与bzcat

打包命令tar

压缩文件的扩展名大多是*.tar  *.tar.gz    *.tgz   *.gz   *.Z   *.bz2

其中

*.Z是compress压缩的;

*.gz是gzip压缩的;

*.bz2是bzip2压缩的;

*.tar是tar程序打包但没有压缩的;

.tar.gz是打包后并经gzip压缩的;

.tar.bz2是打包后并经bzip2压缩的;

通常,压缩与解压缩只针对一个文件;从而打包指令就派上用场了。

gzip与zcat

gzip可以解开compress,zip与gzip等软件所压缩的档案,

//说明:[]里面是选项

gzip [-cdtv#] 档名  //c输出到屏幕,d解压缩时用,t检查有无错误,v显示压缩比等信息

                                     //#压缩等级,-1最快但压缩比最差,-9恰相反,默认-6;

 查看:

zcat 档名.gz  //cat可以查看纯文本,zcat则可以查看压缩文件里的纯文本文件(注意是针对文本文件)

如gzip -v man.config  //压缩后源文件不再存在,被gzip压缩的文件在windows中可以用winRAR打开。

解压gzip –d man.config.gz   //同时删除.gz压缩源文件

用最佳压缩比压缩且不删除源文件gzip -9 -c man.config > man.config.gz 

bzip2与bzcat

比gzip更好

bzip2 [-cdkzv#] 文件  //k保留源文件,-z用于压缩,其它同上

如:bzip2 -z man.config

解压:bzip2 -d man.config.bz2

用最佳压缩比压缩且不删除源文件:bzip2 -9 -c man.config > man.config.bz2

如果扩展名为.bz    .bz2 .tbz  .tbz2时,可以尝试用bzip2来解

 查看:bzcat 档名.bz2

tar

tar [-j或-z][cv][-f 建立的档名]  filename…   //打包与压缩

tar [-j或-z][xv][-f 建立的档名] [-C  目录]   //解压

tar [-j或-z][tv][-f 建立的档名]          //查看

参数:

c建立打包档案,x解压, t查看含有哪些文件,(cxt不能同时使用哦)v显示处理的文件

j最好用于tar.bz2  z最好用于.tar.gz。j比z有更好的压缩比

此外,还有-p(小写)保留原本权限和属性,常用于备份

 

如果不加[-j或-z],档名最好为.tar

eg:在Test_tar目录下有2个文件

压缩:首先进入上一层目录

tar -zcv -f ray.tar.gz Test_tar

tar -jcv -f ray.tar.bz2 Test_tar  //Good

查看压缩包里有什么文件:t和v在一起(t重点在查看含有哪些文件,v显示详细信息)

tar -jtv -f ray.tar.bz2

tar -jt -f ray.tar.bz2   

tar -ztv -f ray.tar.gz

tar -zt -f ray.tar.gz

解压

tar -zxv -f ray.tar.gz -C /tmp

tar -zx -f ray.tar.gz -C /tmp

tar -jx -f ray.tar.bz2 -C /tmp     

打包目录,但不包含该目录下某些文件(比如打包文件本身):

假设我要打包/etc和/root这2个目录,但不想打包/root/etc*开头的档案,而且打包成/root/elesos.tar.bz2(当然自己不能打包自己,因为这个文件放在/root下嘛)

//exclude前面有2个短横线

tar –jcv –f /root/elesos.tar.bz2 –exclude=/root/etc*\

--exclude=/root/elesos.tar.bz2    /etc    /root 

 

 

原文地址:https://www.cnblogs.com/elesos/p/2763157.html