您的位置:首页 > 运维架构 > Linux

Linux常用的压缩与归档命令

2016-01-06 17:03 776 查看
1. 压缩命令

用途:制作压缩文件、解开压缩文件
(1) gzip
压缩后文件格式:.gz
命令格式:

压缩文件:

gzip [-<压缩效率>] [-v]
<源文件>
-<压缩效率>:压缩效率是一个介于 1 - 9 的数值,预设值为 "6" ,指定愈大的数值,压缩效率就会愈高。
-v:显示指令执行过程
对于gzip -r <目录>
-r:递归处理,将指定目录下的所有文件及子目录里的所有文件一并处理,所有文件各自分别压缩。
这样压缩之后原有的文件没有了,生成了.gz格式的压缩文件,如果要在压缩的同时保存原有的文件,命令如下:
gzip [-<压缩效率>] -c <原文件> > <.gz格式的压缩文件>
-c:压缩同时保存原文件
>:输出重定向

② 查看压缩信息:
gzip -l <.gz格式的压缩文件>:列出压缩后压缩文件的相关信息
zcat <.gz格式的压缩文件>:查看压缩后压缩文件的内容

③ 解压文件:
gzip -d <.gz格式的压缩文件>
-d:解开压缩文件
同样解压之后.gz格式的压缩文件没有了。

另一种方法是:
gunzip <.gz格式的压缩文件>

例:我们从/etc目录下拷贝一份文件kdump.conf到/home/test目录下进行实验,



现在对kdump.conf文件进行压缩:



压缩后再查看/home/test目录下的文件:



发现只有压缩后的kdump.conf.gz文件,而源文件kdump.conf已经不存在了。
如果要压缩的同时保存源文件,操作如下:



再查看/home/test目录下的文件:



此时发现源文件仍然存在。

查看kdump.conf.gz压缩文件的相关信息:



查看kdump.conf.gz压缩文件的内容(文件内容较长,所以只截取了前面的一小部分内容):



解压kdump.conf.gz文件:





(2) bzip2

压缩后文件格式:.bz2
命令格式:
① 压缩文件:
bzip2 [-<压缩效率>] [-z] <原文件>
-<压缩效率>:压缩效率是一个介于 1 - 9 的数值,预设值为 "6" ,指定愈大的数值,压缩效率就会愈高。
-z:强行执行压缩
这样压缩之后原有的文件没有了,生成了.gz格式的压缩文件,如果要在压缩的同时保存原有的文件,有两种方法:
第一种方法和gzip类似,命令如下:
bzip2 [-<压缩效率>] -c <原文件> > <.bz2格式的压缩文件>
-c:压缩同时保存原文件
>:输出重定向
第二种方法命令如下:
bzip2 -k <原文件>

② 查看压缩信息:
file <.bz2格式的压缩文件>:列出压缩后压缩文件的相关信息
bzcat <.bz2格式的压缩文件>:查看压缩后压缩文件的内容

③ 解压文件:
bzip2 -d <.bz2格式的压缩文件>
-d:解开压缩文件
同样解压之后.bz2格式的压缩文件没有了,生成了原文件。

另一种方法是:
bunzip2 [-k] <.bz2格式的压缩文件>
-k:解压缩后保留压缩文件
具体操作与gzip命令类似,此处不再举例。

(3) lzma

压缩后文件格式:.lzma
命令格式:
① 压缩文件:
lzma <原文件>
同样压缩之后原有的文件没有了,生成了.lzma格式的压缩文件。

② 解压文件:
lzma -d <.lzma格式的压缩文件>
或 unlzma <.lzma格式的压缩文件>

(4) zip

压缩后文件格式:.zip

命令格式:

① 压缩文件:
zip [-r] <压缩后的.zip格式的文件名>
<原文件或目录>
-r:压缩目录
② 解压文件:
unzip <.zip格式的压缩文件>
zip的压缩和解压都会保存原有的文件。
具体操作与gzip命令类似,此处不再举例。

(5) xz
压缩后文件格式:.xz

命令格式:

① 压缩文件:

xz [-k] <原文件>
-k:保留原有被压缩的文件

② 解压文件:

xz -d [-k] <.xz格式的压缩文件>
-d:解开压缩文件
-k:保留原有被解压的文件

2. 归档命令

用途:制作归档文件、释放归档文件
(1) tar
命令格式:
tar
[选项] <归档(压缩)文件名> <源文件或目录> (对.tar源文件进行压缩,对目录进行打包(并压缩))
常用命令选项:
-c:创建.tar格式的包文件
-x:解开.tar格式的包文件
-t:列表查看包内的文件
-z:调用gzip程序进行压缩或解压
-j:调用bzip2程序进行压缩或解压
-p:打包时保留原始文件即目录的权限
-P:文件名使用绝对名称,不移除文件名称前的“/”号
-v:输出详细信息
-f:指定文件名
-C:解包时指定释放的目标文件夹
一般情况下,相关具体操作命令如下:
① 打包目录并压缩:
tar
-zcvf xxx.tar.gz xxx 或 tar -jcvf xxx.tar.bz2 xxx
② 查看文件内容:
tar
-ztvf xxx.tar.gz 或 tar -jtvf xxx.tar.bz2
③ 解压并释放文件:
tar
-zxvf xxx.tar.gz 或 tar -jxvf xxx.tar.bz2
如果从一个压缩包只释放一个文件,则在上面的命令后面加上相关文件名即可。
在命令后面加上-C <目录>,表示解包时指定释放的目标文件夹为<目录>。

例:我们对/etc目录进行备份来进行实验。
将/etc目录备份为etc.tar.gz文件,具体命令如下:



打包备份后查看/home/test目录:





发现多了一个etc.tar.gz文件。
若要备份为etc.tar.bz2文件,命令如下:





此时查看/home/test目录又多了一个etc.tar.bz2文件。





解压etc.tar.gz文件:





此时查看/home/test目录会多了一个etc目录。





类似的可以解压etc.tar.bz2文件。

(2) 更快速的归档工具——pbzip2
使用pbzip2替代bzip2进行压缩解压,可支持多核。

命令格式:

① 压缩文件:

pbzip2 [选项] <源文件>

-k:保留源文件

-p<数字>:处理器数量,默认自动检测,检测失败设置为2

如:tar -cvf etc.tar /etc

pbzip2 -p2 etc.tar

② 解压文件:

pbzip2 -d[选项] <压缩文件>

如:pbzip2 -d etc.tar.bz2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: