linux基础,zip、tar

爱⌒轻易说出口 提交于 2019-12-03 00:55:48

注:在压缩目录是,如果只写目录名,也会生成压缩文件,但是,压缩文件无内容 如果加上 -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

输入图片说明

作业

  1. gzip, bzip2 能否直接压缩目录呢?

不能、

  1. 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令。

gzip 1.txt

bzip2 2.txt

gzip -d 1.txt.gz

bzip2 -d 2.txt.bz2

  1. tar 在打包的时候,如果想排除多个文件或者目录如何操作?

tar -cvf x.txt.tar 1.txt 3.txt 3 --exclude 2.txt --exclude 4.txt

  1. 请实验,如果不加 "-" 是否正确, 如 tar zcvf 1.tar.gz 1.txt 2.txt ?

正确

  1. 如何使用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

  1. 找一个大点的文件,使用tar 分别把这个文件打成 .tar.gz和.tar.bz2 压缩包,比较一下哪个包会更小,从而得出结论,是gzip压缩效果好还是bzip2压缩效果好?

bz2的压缩效果好

输入图片说明

  1. 使用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 - 意思是将前面的标准输出内容作为解包的对象

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

输入图片说明

输入图片说明

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!