您的位置:首页 > 其它

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

2015-11-20 16:34 721 查看
内容概要:

-----------------------------------------------------------------------------------------------------------------

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,建议用默认的,不加任何参数。 压缩完成之后原文件不存在!
[root@niejicai-linux ~]# ls
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 ~]#

[root@niejicai-linux ~]# gzip -d 34.txt.gz
解压,是用-d参数
gzip: 34.txt already exists; do you wish to overwrite (y or n)? y
[root@niejicai-linux ~]# ls
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
压缩 ,压缩完成之后原文件不存在!
[root@niejicai-linux ~]# ls
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参数
[root@niejicai-linux ~]# ls
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
压缩文件,压缩完成之后原文件不存在!
[root@niejicai-linux ~]# ls
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
[root@niejicai-linux ~]# ls
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
[root@niejicai-linux ~]#
-----------------------------------------------------------------------------------------------------------------

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%)
[root@niejicai-linux ~]# ls
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 ~]#

[root@niejicai-linux ~]# zip -r etc.zip /etc/
压缩目录 -r参数

[root@niejicai-linux ~]# ls
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

[root@niejicai-linux ~]#

jicai-linux ~]# unzip abc.zip 解压完成之后,原文件也不会消失
Archive: abc.zip
replace 91.txt? [y]es,
o, [A]ll,
one, [r]ename: y
inflating: 91.txt
replace 92.txt? [y]es,
o, [A]ll,
one, [r]ename: y
inflating: 92.txt
replace 93.txt? [y]es,
o, [A]ll,
one, [r]ename: y
inflating: 93.txt
[root@niejicai-linux ~]# ls
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 ~]#

[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
[root@niejicai-linux ~]#

-----------------------------------------------------------------------------------------------------------------

5.可以同时压缩多个文件,以及解压文件
测试:

[root@niejicai-linux ~]# gzip 91.txt 92.txt 93.txt
[root@niejicai-linux ~]# ls
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
[root@niejicai-linux ~]# ls
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
[root@niejicai-linux ~]# ls
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
[root@niejicai-linux ~]# ls
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
[root@niejicai-linux ~]# ls
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
[root@niejicai-linux ~]# ls
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 ~]#

[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%)
[root@niejicai-linux ~]# ls
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)

[root@niejicai-linux ~]# ls
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 ~]#

[root@niejicai-linux ~]# du -sh 33.tar
37M 33.tar
[root@niejicai-linux ~]# du -sh /etc/
40M /etc/
[root@niejicai-linux ~]#

[root@niejicai-linux ~]# tar -cvf 33.tar /etc/ /root/
多个目录一起打包

目录加文件到可以打

[root@niejicai-linux ~]# tar -xvf 33.tar
解压(用-x参数)

[root@niejicai-linux ~]# ls
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 ~]#

[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,其他不变

[root@niejicai-linux ~]# ls
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,其他不变

[root@niejicai-linux ~]# ls
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,其他不变
[root@niejicai-linux ~]# ls
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 - 意思是,将前面的标准输出内容作为解包的对象。

总结:其实就是像拷贝的目录先打包,然后将打包好的文件拷贝到目标主机,最后在目标主机上解包。只不过,我们用一条命令实现了边打包边解包的过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: