注:在压缩目录是,如果只写目录名,也会生成压缩文件,但是,压缩文件无内容 如果加上 -r ,则会把目录下所有的目录和文件一并压缩。
zip压缩工具
zip 压缩文件.zip 源文件
zip -r xx.zip 3.txt xxxx(目录) 加参数-r 压缩目录
unzip 1.txt.zip 解压缩
unzip xx.zip -d /tmp/3/ 用-d指定解压到/tmp/3目录下
unzip -l 123.zip 查看压缩包的文件列表
tar打包工具
tar -c(创建)v(可视化)f 压缩文件名 文件(可以多个,用空格隔开也可以是目录)
tar -x(解压)v(可视化)f xx.tar(压缩文件)
tar -C 设置解压目录:比如 tar -vxf xx.txt.tar -C /opt
注意:解压缩时,不会提示是否覆盖,而是直接覆盖原文件
查看包内容:tar -tf 压缩文件 (适用于gzip打包、bz2打包、xz打包)
--exclude 可以在打包的时候,排查某些文件或者目录。
tar -vcf 文件.tar.gz --exclude 排除的文件或目录 打包的文件或目录 一个--exclude只能排除一个,要排除多个要在次添加---exclude 排除的文件或目录
打包并压缩
* 使用gzip压缩:tar -zcvf x.tar.gz 原目录或者原文件名称,-z表示打包的同时使用gzip压缩
解压:tar -zvxf x.tar.gz
* 使用bzip2压缩:tar -jcvf x.tar.bz2 原目录或者原文件名称 ,-j 表示打包的同时使用bzip2压缩
解压:tar -jvxf x.tar.bz2
* 使用xz压缩:-Jcvf x.tar.xz 原目录或者原文件名称 ,-J表示打包的同时使用xz压缩
解压:tar -Jvxf x.tar.xz
作业
- gzip, bzip2 能否直接压缩目录呢?
不能、
- 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令。
gzip 1.txt
bzip2 2.txt
gzip -d 1.txt.gz
bzip2 -d 2.txt.bz2
- tar 在打包的时候,如果想排除多个文件或者目录如何操作?
tar -cvf x.txt.tar 1.txt 3.txt 3 --exclude 2.txt --exclude 4.txt
- 请实验,如果不加 "-" 是否正确, 如 tar zcvf 1.tar.gz 1.txt 2.txt ?
正确
- 如何使用tar打包和解包 .tar.gz, .tar.bz2 的压缩包?
tar -zcvf x1.tar.gz 1.txt 2.txt
tar jcvf x2.tar.bz2 1.txt 2.txt
tar -zxvf x1.tar.gz
tar -jxvf x2.tar.bz2
- 找一个大点的文件,使用tar 分别把这个文件打成 .tar.gz和.tar.bz2 压缩包,比较一下哪个包会更小,从而得出结论,是gzip压缩效果好还是bzip2压缩效果好?
bz2的压缩效果好
- 使用tar打包并压缩的时候,默认压缩级别为几? 想一想如何能够改变压缩级别呢?(提示,tar本身没有这个功能哦,可以尝试拆分打包和压缩
tar打包压缩时,是按照gzip和bzip2的默认压缩级别来的,gzip工具默认压缩级别为6,bzip2默认压缩级别为9
要改变压缩级别,先打包,再用gzip或者bz2压缩。
补充
linux不支持大于4G的文件的解压。
解决办法如下: wget -c http://packages.sw.be/p7zip/p7zip-9.13-1.el5.rf.i386.rpm wget -c http://packages.sw.be/p7zip/p7zip-plugins-9.13-1.el5.rf.i386.rpm 下载完后安装: rpm -ivh p7zip-9.13-1.el5.rf.i386.rpm rpm -ivh p7zip-plugins-9.13-1.el5.rf.i386.rpm
解压命令: 7z x 123.zip
利用tar通过网络拷贝数据
首先切换到要拷贝文件的目录,
运行tar cvf - test| ssh 10.0.1.11 "cd /copy1/; tar xvf -"
这条命令的意思是,先将要拷贝的目录打包,然后输出到目标主机,
后面的tar vxf - 意思是将前面的标准输出内容作为解包的对象
总结:其实就是想拷贝的目录先打包,然后将打包好的文件拷贝到目标主机,最后在目标主机上解包。只不过,我们用一条命令实现了边打包边解包的过程。
来源:oschina
链接:https://my.oschina.net/u/3363383/blog/1568110