gzip,bzip2, xz , zip ,unzip ,解压,压缩;tar打包,解压。

原创 2015年11月20日 16:34:50
内容概要:
-----------------------------------------------------------------------------------------------------------------
1. gzip工具
语法: gzip [-d#] filename 其中#为1-9的数字,默认压缩级别为6 
只能压缩文件
gzip  filename 生成filename.gz 源文件消失
解压 gzip -d filename.gz 解压后,压缩文件也会消失zcat  filename.gz  查看gz压缩文件的内容

测试:
[root@niejicai-linux ~]# touch  34.txt
[root@niejicai-linux ~]# /etc/init.d/* > 34.txt
[root@niejicai-linux ~]# du -sh 34.txt
4.0K    34.txt
[root@niejicai-linux ~]# gzip 34.txt                     压缩    (gzip -9 34.txt 压缩的效果最好),默认级别是6,建议用默认的,不加任何参数。                                                       压缩完成之后原文件不存在!
10.txt  34.txt.gz  6.txt            install.log
12      3.txt      7.txt            install.log.syslog
234     4.txt      999.txt          jicai
2.txt   5.txt      anaconda-ks.cfg  niejicailinux.txt
[root@niejicai-linux ~]# gzip -d 34.txt.gz            解压,是用-d参数
gzip: 34.txt already exists; do you wish to overwrite (y or n)? y
10.txt  34.txt  6.txt            install.log
12      3.txt   7.txt            install.log.syslog
234     4.txt   999.txt          jicai
2.txt   5.txt   anaconda-ks.cfg  niejicailinux.txt
[root@niejicai-linux ~]# zcat 34.txt.gz                  查看压缩文件
-----------------------------------------------------------------------------------------------------------------


2. bzip2压缩工具
语法: bzip2 [-dz] filename 
压缩时,可以加 “-z” 也可以不加,都可以压缩文件  bzip2 filename  生成filename.bz2 源文件消失
不支持压缩目录
bzip2 -d  filename.bz2 解压后压缩文件消失
可以使用 bzcat 查看bz2的压缩前的文件内容
测试:
[root@niejicai-linux ~]# bzip2 34.txt                       压缩  ,压缩完成之后原文件不存在!
10.txt  34.txt.bz2  6.txt            install.log
12      3.txt       7.txt            install.log.syslog
234     4.txt       999.txt          jicai
2.txt   5.txt       anaconda-ks.cfg  niejicailinux.txt
[root@niejicai-linux ~]# du -sh 34.txt.bz2
4.0K    34.txt.bz2
[root@niejicai-linux ~]# bzip2 -d 34.txt.bz2            解压,也是用-d参数
10.txt  34.txt  6.txt            install.log
12      3.txt   7.txt            install.log.syslog
234     4.txt   999.txt          jicai
2.txt   5.txt   anaconda-ks.cfg  niejicailinux.txt
[root@niejicai-linux ~]#  bzcat 34.txt.bz2                查看压缩文件
-----------------------------------------------------------------------------------------------------------------


3. xz
用法同gzip和bzip2
xz  filename
生成filename.xz
不支持压缩目录
xz -d filename.xz  进行解压缩xzcat  filename.xz  查看xz压缩文件内容
测试:
[root@niejicai-linux ~]# xz 90.txt                             压缩文件,压缩完成之后原文件不存在!
10.txt      3.txt  90.txt.xz           jicai
12          4.txt  999.txt             niejicailinux.txt
234         5.txt  anaconda-ks.cfg
2.txt       6.txt  install.log
34.txt.bz2  7.txt  install.log.syslog
[root@niejicai-linux ~]# xz -d 90.txt.xz                     解压,用-d
10.txt      3.txt  90.txt              jicai
12          4.txt  999.txt             niejicailinux.txt
234         5.txt  anaconda-ks.cfg
2.txt       6.txt  install.log
34.txt.bz2  7.txt  install.log.syslog
-----------------------------------------------------------------------------------------------------------------


4. zip及unzip
zip是压缩工具,unzip是解压缩工具
压缩文件: zip  filename.zip  filename
压缩目录: zip -r  dir.zip dir/ 
解压缩zip压缩包: unzip  filename.zip
unzip -l  filename.zip   列出压缩包里面文件列表清单
unzip -d  /tmp/   filename.zip   把压缩包解压到指定目录

测试:
[root@niejicai-linux ~]# zip 34.txt.zip 34.txt             把34.txt压缩成34.txt.zip
压缩完成之后,原文件还依旧存在!
  adding: 34.txt (deflated 16%)
10.txt  34.txt.zip  7.txt            install.log.syslog
12      3.txt       90.txt           jicai
234     4.txt       999.txt          niejicailinux.txt
2.txt   5.txt       anaconda-ks.cfg
34.txt  6.txt       install.log
[root@niejicai-linux ~]# zip -r etc.zip /etc/                压缩目录     -r参数
10.txt  34.txt      5.txt   999.txt          install.log.syslog
12      34.txt.zip  6.txt   anaconda-ks.cfg  jicai
234     3.txt       7.txt   etc.zip          niejicailinux.txt
2.txt   4.txt       90.txt  install.log
[root@niejicai-linux ~]# du -sh etc.zip
35M     etc.zip
jicai-linux ~]# unzip abc.zip                                           解压完成之后,原文件也不会消失
Archive:  abc.zip
replace 91.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
  inflating: 91.txt
replace 92.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
  inflating: 92.txt
replace 93.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
  inflating: 93.txt
10.txt      3.txt   91.txt           install.log
12          4.txt   92.txt           install.log.syslog
234         5.txt   93.txt           jicai
2.txt       6.txt   999.txt          niejicailinux.txt
34.txt      7.txt   abc.zip
34.txt.zip  90.txt  anaconda-ks.cfg
[root@niejicai-linux ~]# unzip -l abc.zip
Archive:  abc.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
      178  11-19-2015 22:56   91.txt
      178  11-19-2015 22:56   92.txt
      267  11-19-2015 22:56   93.txt
---------                     -------
      623                     3 files
-----------------------------------------------------------------------------------------------------------------
5.可以同时压缩多个文件,以及解压文件
测试:
[root@niejicai-linux ~]# gzip  91.txt 92.txt 93.txt
10.txt      3.txt   91.txt.gz        install.log
12          4.txt   92.txt.gz        install.log.syslog
234         5.txt   93.txt.gz        jicai
2.txt       6.txt   999.txt          niejicailinux.txt
34.txt      7.txt   anaconda-ks.cfg
34.txt.zip  90.txt  etc.zip
[root@niejicai-linux ~]# gzip -d 91.txt.gz 92.txt.gz 93.txt.gz
10.txt      3.txt   91.txt           install.log
12          4.txt   92.txt           install.log.syslog
234         5.txt   93.txt           jicai
2.txt       6.txt   999.txt          niejicailinux.txt
34.txt      7.txt   anaconda-ks.cfg
34.txt.zip  90.txt  etc.zip
[root@niejicai-linux ~]# bzip2  91.txt 92.txt 93.txt
10.txt      3.txt   91.txt.bz2       install.log
12          4.txt   92.txt.bz2       install.log.syslog
234         5.txt   93.txt.bz2       jicai
2.txt       6.txt   999.txt          niejicailinux.txt
34.txt      7.txt   anaconda-ks.cfg
34.txt.zip  90.txt  etc.zip
[root@niejicai-linux ~]# bzip2 -d 91.txt.bz2 92.txt.bz2 93.txt.bz2
10.txt      3.txt   91.txt           install.log
12          4.txt   92.txt           install.log.syslog
234         5.txt   93.txt           jicai
2.txt       6.txt   999.txt          niejicailinux.txt
34.txt      7.txt   anaconda-ks.cfg
34.txt.zip  90.txt  etc.zip
[root@niejicai-linux ~]# xz 91.txt 92.txt 93.txt
10.txt      3.txt   91.txt.xz        install.log
12          4.txt   92.txt.xz        install.log.syslog
234         5.txt   93.txt.xz        jicai
2.txt       6.txt   999.txt          niejicailinux.txt
34.txt      7.txt   anaconda-ks.cfg
34.txt.zip  90.txt  etc.zip
[root@niejicai-linux ~]# xz -d 91.txt.xz 92.txt.xz 93.txt.xz
10.txt      3.txt   91.txt           install.log
12          4.txt   92.txt           install.log.syslog
234         5.txt   93.txt           jicai
2.txt       6.txt   999.txt          niejicailinux.txt
34.txt      7.txt   anaconda-ks.cfg
34.txt.zip  90.txt  etc.zip

[root@niejicai-linux ~]# zip abc.zip 91.txt 92.txt 93.txt
  adding: 91.txt (deflated 56%)
  adding: 92.txt (deflated 56%)
  adding: 93.txt (deflated 70%)
10.txt  34.txt.zip  7.txt   999.txt          install.log.syslog
12      3.txt       90.txt  abc.zip          jicai
234     4.txt       91.txt  anaconda-ks.cfg  niejicailinux.txt
2.txt   5.txt       92.txt  etc.zip
34.txt  6.txt       93.txt  install.log
--------------------------------------------------------------------------------------------


6. tar打包工具
可以打包目录也可以打包文件
语法:tar [-zjxcvfpP] filename 
打包: tar -cvf  test.tar  test 其中test是文件或目录 
-c: 表示建立包,-v 可视化,压缩时跟 “-f 文件名”,意思是压缩后的文件名为filename, 解压时跟 “-f 文件名”,意思是解压filename. 请注意,如果是多个参数组合的情况下带有 “-f”,请把 “-f” 写到最后面。 -u: 在包里增加一个新文件,比如   tar -u 1.txt  -vf test.tar 

查看包内容: tar -tf  test.tar
-t :查看tar包里面的文件 
解包: tar -xvf  test.tar 
-x : 解包或者解压缩 
不管是打包还是解包,原来的文件是不会删除的,但它会覆盖当前已经存在的文件或者目录。
-C:  解压到指定目录,比如  tar   -xvf  test.tar -C /tmp/

打包的同时使用gzip压缩: tar -czvf  1.tar.gz 1 其中1可以是文件也可以是目录
-z 表示打包同时使用gzip压缩
解压.tar.gz的压缩包: tar -xzvf 1.tar.gz
使用bzip2压缩: tar -cjvf 1.tar.bz2 1
-j 表示打包同时使用bzip2压缩
解压.tar.bz2: tar -xjvf 1.tar.bz2

有时我们会看到一种后缀名为 .tar.xz的文件,这种压缩包是用xz工具压缩,解压的方法为:
tar -Jxvf  file.tar.xz 需要安装xz工具,yum install -y xz*
tar -cJvf   dir.tar.xz  dir/   //打包压缩程 xz格式压缩包


同样使用 tar -tf 查看压缩的包: tar -tf 1.tar.gz 或者tar -tf 1.tar.bz2
--exclude 可以在打包的时候,排除某些文件或者目录
tar --exclude 1.txt  -czvf 1.tar.gz  dir/
排除多个文件或者目录: tar --exclude 1.txt --exclude 123/ -czvf 1.tar.gz  dir/

测试:
[root@niejicai-linux ~]# tar -cvf 33.tar /etc/                       打包注意参数(-cvf)
10.txt  34.txt.zip  90.txt   anaconda-ks.cfg
12      3.txt       91.txt   install.log
234     4.txt       92.txt   install.log.syslog
2.txt   5.txt       93.txt   jicai
33.tar  6.txt       999.txt  niejicailinux.txt
34.txt  7.txt       abc.zip
[root@niejicai-linux ~]# du -sh 33.tar
37M     33.tar
[root@niejicai-linux ~]# du -sh /etc/
40M     /etc/
[root@niejicai-linux ~]# tar -cvf 33.tar /etc/ /root/       多个目录一起打包
 目录加文件到可以打

[root@niejicai-linux ~]# tar -xvf 33.tar                              解压(用-x参数)
10.txt      3.txt   92.txt           install.log.syslog
12          4.txt   93.txt           jicai
234         5.txt   999.txt          niejicailinux.txt
2.txt       6.txt   abc.zip          root
33.tar      7.txt   anaconda-ks.cfg
34.txt      90.txt  etc
34.txt.zip  91.txt  install.log
[root@niejicai-linux ~]# tar -xvf 33.tar  -C /tmp/           解压时指定路径-C参数
[root@niejicai-linux ~]# ls /tmp/
116.txt               pulse-dQkFpOTOEFmz
12                    root
123                   user4.tx9t
1.txt                 user4.txt
21.txt                virtual-niejicai.gYSRns
2.txt                 virtual-niejicai.wgXOwP
etc                   vmware-config0
keyring-86AmDV        VMwareDnD
ks-script-Esq4wN      vmware-niejicai
ks-script-Esq4wN.log  vmware-root
niejicai              vmware-root-558077721
niejicailinux         yum.log
pulse-0csfN1qMsBKf
[root@niejicai-linux ~]# tar -tf 33.tar                   查看压缩包

关联:
[root@niejicai-linux ~]# tar -zcvf 33.tar.gz /etc/         打包压缩 (-z 对应gzip)------->解压的时候,c换为x,其他不变
10.txt     34.txt.zip  91.txt           install.log
12         3.txt       92.txt           install.log.syslog
234        4.txt       93.txt           jicai
2.txt      5.txt       999.txt          niejicailinux.txt
33.tar     6.txt       abc.zip          root
33.tar.gz  7.txt       anaconda-ks.cfg
34.txt     90.txt      etc
[root@niejicai-linux ~]# du -sh 33.tar*
37M     33.tar
11M     33.tar.gz
[root@niejicai-linux ~]# tar -jcvf 33.tar.bz2 /etc/        打包压缩(-j对应bzip2)------->解压的时候,c换为x,其他不变
10.txt      34.txt      90.txt           etc
12          34.txt.zip  91.txt           install.log
234         3.txt       92.txt           install.log.syslog
2.txt       4.txt       93.txt           jicai
33.tar      5.txt       999.txt          niejicailinux.txt
33.tar.bz2  6.txt       abc.zip          root 
33.tar.gz   7.txt       anaconda-ks.cfg
[root@niejicai-linux ~]# tar -Jcvf 33.tar.xz /etc/              打包压缩(-J  对应xz)-------->解压的时候,c换为x,其他不变
10.txt      33.tar.xz   7.txt    anaconda-ks.cfg
12          34.txt      90.txt   etc
234         34.txt.zip  91.txt   install.log
2.txt       3.txt       92.txt   install.log.syslog
33.tar      4.txt       93.txt   jicai
33.tar.bz2  5.txt       999.txt  niejicailinux.txt
33.tar.gz   6.txt       abc.zip  root
[root@niejicai-linux ~]# du -sh 33.tar*
37M     33.tar
6.1M    33.tar.bz2
11M     33.tar.gz
6.1M    33.tar.xz
[root@niejicai-linux ~]# tar -cvf 34.tar --exclude "*.sh"  /etc/               压缩的过程中,可以选择的去压缩,
                                                                                                                      这里是排除“.sh"文件目录。 

7.用tar远程拷贝数据:

# cd /data  // data目录下有我们要拷贝的目标文件目录 test
# tar cvf  -  test| ssh 10.0.1.11 "cd /copy1/; tar xvf  -"  //首先将要拷贝的目录test打包,"-" 代表标准输出,然后再ssh 到目标主机 10.0.1.11 ,运行相应的命令。其中tar xvf  - 意思是,将前面的标准输出内容作为解包的对象。

总结:其实就是像拷贝的目录先打包,然后将打包好的文件拷贝到目标主机,最后在目标主机上解包。只不过,我们用一条命令实现了边打包边解包的过程。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux bzip2/gzip/zip/tar 命令详解

*.bz2 | bzip2 | bzip2 -d *.gz | gzip | gzip -d *.zip | zip -r | unzip *.tar | tar -cf | tar -xf *.t...
  • u013490896
  • u013490896
  • 2017年05月16日 20:18
  • 1133

归档与压缩命令的总结 -- gzip, gunzip, zcat, bzip2, bunzip2, bzcat, xz, unxz, xzcat, zip, unzip, tar

归档与压缩命令的总结 -- gzip, gunzip, zcat, bzip2, bunzip2, bzcat, xz, unxz, xzcat, zip, unzip, tar...
  • Error_0_0_
  • Error_0_0_
  • 2017年02月03日 15:35
  • 617

linux gzip、bzip2常用压缩、解压缩指令总结

linux里面的压缩解压缩是非常常用的指令,而linux支持的压缩指令比较多样化,且不同的压缩使用的技术不同,目前常用的主要是gzip和bzip2这两个,可能有些人比较常用tar这个指令,这个指令主要...
  • belen_xue
  • belen_xue
  • 2016年06月11日 09:40
  • 5685

redhat Linux系统 tar、gzip 、zip等压缩命令

【gzip/gunzip】 gzip是压缩命令,对应的gunzip是解压命令,使用时很简单,如下: gzip file1 执行压缩,压缩后文件名为file1.gz gunzip file1.gz...
  • scorpio3k
  • scorpio3k
  • 2012年08月19日 23:15
  • 5066

golang压缩、解压文件

golang压缩 解压缩文件
  • strangerLove
  • strangerLove
  • 2016年06月12日 18:19
  • 678

Linux 解压缩与管道命令

gzip:(不能是目录,只能压缩单个文件)  压缩  gzip hellobak.c  解压  gunzip hellobak.c.gz  unzip --- 解压zip类型 tar 打包命令:(t...
  • huanghui036
  • huanghui036
  • 2013年11月12日 10:50
  • 3567

Mac terminal下解压缩命令大全

tar  解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— ....
  • yishengzhiai005
  • yishengzhiai005
  • 2016年11月15日 09:48
  • 15516

linux下压缩与解压(zip、unzip、tar)详解

最近经常在linux上进行打包压缩解压,从网上收集整理并结合自己的常用的,跟大家分享一下下,废话不多说,进入正题。 1、zip 压缩 如果是直接压缩几个文件,那就可以直接使用命令 zip newf...
  • liuxiao723846
  • liuxiao723846
  • 2016年07月03日 17:44
  • 3300

压缩及打包--gzip,bzip2,tar

一.常见的压缩文件 1.*.Z:compress程序压缩的文件; 2.*.gz:gzip程序压缩的文件; 3.*.bz2:bzip2程序压缩的文件; 4.*.tar:tar程序打包的数据,没有...
  • death_kada
  • death_kada
  • 2015年09月01日 19:51
  • 553

golang tar gzip压缩,解压(含目录文件)

转载:http://www.3fwork.com/b208/000119MYM031848/ golang tar gzip压缩,解压(含目录文件) tar是用于文件归档,gzip用于压缩。仅仅用t...
  • zhangxinrun
  • zhangxinrun
  • 2017年04月26日 10:55
  • 799
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gzip,bzip2, xz , zip ,unzip ,解压,压缩;tar打包,解压。
举报原因:
原因补充:

(最多只允许输入30个字)