Linux压缩打包
压缩是一种通过特定的算法来减小计算机文件大小的机制。有利于文件在网络上的传输,节约带宽。在Linux中,压缩是以后缀名区分文件的。(Linux中很少见)压缩文件都会呈现醒目的红色。
注意!以下压缩软件只能压缩文件而不能压缩目录。不能对目录直接压缩!
compress命令
compress这个命令是非常老旧的一款命令,现在基本已经不用了 而且bzip已经可以解开compress压缩格式。一般来说使用compress需要实现安装ncompress包。这里就不做具体详述了
compress [-dfvcVr] [-b maxbits] [file …]
-d: 解压缩,相当于
-c: 结果输出至标准输出,不删除原文件
-v: 显示详情
uncompress 解压缩
zcat file.Z >file
gzip命令
gzip/gunzip/zcat是应用最广的命令。目前gzip可以解开compress和gzip等软件压缩的文件,后缀名为FILE.gz。 gunzip为gzip的解压命令,zcat是查看压缩好的带.gz后缀的压缩包。cat查询为乱码!
语法格式
gzip [OPTION]… FILE …
常用参数
-d: 解压缩,相当于gunzip
-c: 将压缩或解压缩的结果输出至标准输出
-#:1-9,指定压缩比,值越大压缩比越大。默认为6,数值越高压缩比越高,但不推荐
举例
[root@localhost tmp]# ll #原始文件 total 8 -rw-r--r-- 1 root root 679 Aug 24 10:14 fstab -rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd [root@localhost tmp]# gzip fstab #压缩fstab [root@localhost tmp]# ll total 8 -rw-r--r-- 1 root root 376 Aug 24 10:14 fstab.gz #原文件压缩加后缀,大小改变 -rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd [root@localhost tmp]# gzip -dc fstab.gz >file #解压且保留压缩文件,默认不保留 [root@localhost tmp]# ll #显示解压文杰和保留压缩包 total 12 -rw-r--r-- 1 root root 679 Aug 24 10:14 file -rw-r--r-- 1 root root 376 Aug 24 10:14 fstab.gz -rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd [root@localhost tmp]# compress file #用compress压缩file文件 [root@localhost tmp]# ll total 12 -rw-r--r-- 1 root root 468 Aug 24 10:14 file.Z #compress压缩文件,后缀为.Z -rw-r--r-- 1 root root 376 Aug 24 10:14 fstab.gz -rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd [root@localhost tmp]# gunzip file.Z #使用gzip解压compress压缩文件 [root@localhost tmp]# ll total 12 -rw-r--r-- 1 root root 679 Aug 24 10:14 file #解压成功 -rw-r--r-- 1 root root 376 Aug 24 10:14 fstab.gz -rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd
bzip2命令
bzip/bunzip2/bzcat是为了取代gzip并提供更高的压缩比而来的。它的用法和gzip几乎完全相同。后缀名为.bz2
语法格式
bzip2 [OPTION]… FILE …
常用选项
-k: keep, 保留原文件
-d:解压缩
-#:1-9,压缩比,默认为6,
bzcat:不显式解压缩的前提下查看文本文件内容;
示例
[root@localhost tmp]# ls #源文件 file fstab passwd [root@localhost tmp]# bzip2 passwd #压缩passwd文件后会在原文件加.bz2完成压缩 [root@localhost tmp]# ls #显示 file fstab passwd.bz2 [root@localhost tmp]# bzip2 -k fstab #压缩并保留源文件 [root@localhost tmp]# ls file fstab fstab.bz2 passwd.bz2 [root@localhost tmp]# ll total 16 -rw-r--r-- 1 root root 679 Aug 24 10:14 file -rw-r--r-- 1 root root 679 Aug 24 10:14 fstab -rw-r--r-- 1 root root 410 Aug 24 10:14 fstab.bz2 #bzip2压缩文件 -rw-r--r-- 1 root root 995 Aug 24 10:05 passwd.bz2#bzip2压缩文件 [root@localhost tmp]# bzip2 -d passwd.bz2 #解压文件 [root@localhost tmp]# ll total 16 -rw-r--r-- 1 root root 679 Aug 24 10:14 file -rw-r--r-- 1 root root 679 Aug 24 10:14 fstab -rw-r--r-- 1 root root 410 Aug 24 10:14 fstab.bz2 -rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd #解压成普通文件
xz命令
xz/unxz/zcat是比较新的压缩软件。但它比bzip2的压缩比更好。后缀名为.xz。
语法
xz [OPTION]…FILE…
常用选项
-d;解压缩
-#;指定压缩比;默认是6;数字越大压缩比越大(1-9);
-k; 保留原文件
示例
[root@localhost tmp]# ls #测试文件 file fstab fstab.bz2 fstab.gz passwd [root@localhost tmp]# xz fstab 使用xz压缩fstab文件 [root@localhost tmp]# ll total 20 -rw-r--r-- 1 root root 679 Aug 24 10:14 file -rw-r--r-- 1 root root 436 Aug 24 10:14 fstab.xz #xz压缩文件 -rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd
zip命令
zip压缩是使用最广的,不论是windows还是like-unxi系统都有使用它。后缀名为.zip,用法和以上压缩软件都是类型我就不多做介绍了。
tar命令
tar是一个打包命令,可以将多个文件打包成一个文件,同时它也支持gzip/bzip2/xz压缩等。
语法
tar [OPTION…] [FILE]…
常用选项
-j:支持bzip2解压文件;
-v:显示操作过程;
-t或–list:列出备份文件的内容;
-z或–gzip或–ungzip:通过gzip指令处理备份文件;
-Z或–compress或–uncompress:通过compress指令处理备份文件;
-f<备份文件>或–file=<备份文件>:指定备份文件;
-v或–verbose:显示指令执行过程;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-J, –xz :支持xz解压文件
-x或–extract或–get:从备份文件中还原文件;
-x或–extract或–get:从备份文件中还原文件;
特别注意
#在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tar.gz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
常用组合选项
tar -cf /PATH/TO/SOMEFILE.tar FILE…. #创建归档,不压缩
tar -tvf /PATH/TO/SOMEFILE.tar FILE…. #查看归档中的文件列表
tar -xf /PATH/FROM/SOMEFILE.tar#解包,.tar包扔存在
tar -xf /PATH/FROM/SOMEFILE.tar -C /PATH/TO/SOMEDIR #解包至指定目录下。
示例
[root@localhost tmp]# ll #原文件 total 15004 -rw-r--r-- 1 root root 595 Aug 24 11:30 fstab -rw------- 1 root root 15353251 Aug 24 11:30 messages -rw-r--r-- 1 root root 2535 Aug 24 11:30 passwd [root@localhost tmp]# tar cf fstab.tar fstab#创建归档文件fstab.tar(注意.tar需要自己手动加后缀好方便识别) [root@localhost tmp]# tar cf all.tar fstab messages passwd#把三个文件打包为all.tar [root@localhost tmp]# ll total 30016 -rw-r--r-- 1 root root 15360000 Aug 24 11:33 all.tar -rw-r--r-- 1 root root 595 Aug 24 11:30 fstab -rw-r--r-- 1 root root 10240 Aug 24 11:33 fstab.tar -rw------- 1 root root 15353251 Aug 24 11:30 messages -rw-r--r-- 1 root root 2535 Aug 24 11:30 passwd [root@localhost tmp]# tar tvf all.tar #查看all.tar文件列表 -rw-r--r-- root/root 595 2016-08-24 11:30 fstab -rw------- root/root 15353251 2016-08-24 11:30 messages -rw-r--r-- root/root 2535 2016-08-24 11:30 passwd [root@localhost tmp]# tar ztvf passwd.tar.gz #查看包内文件列表 -rw-r--r-- root/root 2535 2016-08-24 11:30 passwd [root@localhost tmp]# tar zxvf passwd.tar.gz #用z解压.gz后缀的文件 passwd [root@localhost tmp]# ll #显示结果 total 30020 -rw-r--r-- 1 root root 15360000 Aug 24 11:33 all.tar -rw-r--r-- 1 root root 595 Aug 24 11:30 fstab -rw-r--r-- 1 root root 10240 Aug 24 11:33 fstab.tar -rw------- 1 root root 15353251 Aug 24 11:30 messages -rw-r--r-- 1 root root 2535 Aug 24 11:30 passwd -rw-r--r-- 1 root root 1073 Aug 24 11:37 passwd.tar.gz [root@localhost tmp]# tar -zxvf passwd.tar.gz -C /testdir/ #指定压缩的文件路径 passwd [root@localhost tmp]# ll /testdir/passwd #查看结果 -rw-r--r-- 1 root root 2535 Aug 24 11:30 /testdir/passwd
cpio命令
cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件。
语法
cpio [选项] > 文件名或者设备名
cpio [选项] < 文件名或者设备名
常用选项
-o 将文件拷贝打包成文件或者将文件输出到设备上
-i 解包,将打包文件解压或将设备上的备份还原到系统
-t 预览,查看文件内容或者输出到设备上的文件内容
-v 显示打包过程中的文件名称。
-d 解包生成目录,在cpio还原时,自动的建立目录
-c 一种较新的存储方式
示例
将etc目录备份:
find /etc -print |cpio -ov >etc.cpio
[root@localhost tmp]# ll total 49768 -rw-r--r-- 1 root root 15360000 Aug 24 11:33 all.tar -rw-r--r-- 1 root root 20218368 Aug 24 13:21 etc.cpio #etc备份包 -rw-r--r-- 1 root root 595 Aug 24 11:30 fstab -rw-r--r-- 1 root root 10240 Aug 24 11:33 fstab.tar -rw------- 1 root root 15353251 Aug 24 11:30 messages -rw-r--r-- 1 root root 2535 Aug 24 11:30 passwd -rw-r--r-- 1 root root 1073 Aug 24 11:37 passwd.tar.gz
内容预览
cpio –tv < etc.cpio
要解包文件
cpio –iv <etc.cpio
cpio –idv < etc.cpio
原创文章,作者:ladsdm,如若转载,请注明出处:http://www.178linux.com/39476