2019-01-29 04:28:05 xmj15715216140 阅读数 359
  • Facebook数据查询引擎Presto教程(含配套资料)

    版本:presto-server-0.214.tar 软件版本 presto-cli-0.214-executable CentOS7 1、presto的起因 hadoop ---hdfs----MR(java)-----hive hive底层原理用MR,速度比较慢,公司hadoop集群主要集中于晚上到凌晨,平日工作时间负载不是很高。但在工作时间内,公司业务人员有实时查询的需求,现在主要借助于hive提供业务人员的查询。hive是基于MR类的SQL查询工具,他会输入的查询SQL解析为MapReduce,能极大的降低使用大数据门槛,让一般的业务人员可以直接准对大数据进行查询,但是有一个利弊,它的查询基于MR,会让人等待比较着急,等待的时间可能是几个小时或者一天。 spark基于内存提高改良的hive,sql,现在factbook在hive上面开发一套利器,准对hive可以通过sql语句快速查询,presto。 2、Facebook为何开发Presto  Facebook的2011的数据仓库存储在少量大型hadoop fs集群,Hive是FaceBook在几年前专门为Hadoop打造的一款数据仓库工具,在以前,facebook的科学家和分析师一直靠hive进行数据分析.但hive使用MR作为底层计算框架,是专为批处理设计的,但是随着数据的不断增多,使用hive进行一个简单的数据查询可能要花费分钟或者几个小时,显然不能满足查询需求,FaceBooke也调研了其他比hive更快的工具,但是他们需要在功能有限的条件下做简单操作,以至于无法操作Facebook庞大的数据要求。 2012年开始研究自己的框架--presto,每日可以超过1pb查询,而且速度比较快,faceBook声称Presto的性能比hive要好上10倍或者100倍,presto和hive都是facebook开发的  Presto是一个开源的分布式SQL查询引擎,适用于交互式查询,数据量支持GB到PB字节。 Presto的设计和编写完全是为了解决Facebook这样规模的商业数据仓库交互式分析和处理速度的问题 Presto可以做什么 Presto支持在线数据查询,包括Hive kafka Cassandra关系数据库以及专门数据存储,一条Presto查询可以将多个数据源进行合并,可以跨越整个组织进行分析。 Presto以分析师的需求作为目标,他们期望相应速度小于1秒到几分钟,Presto要么在使用速度的快的昂贵的商业方案,提高内存,要么是消耗大量的硬件进行快速查询。(128G 64G) 本套课程教给如何在企业环境中使用Presto技术。

    202 人正在学习 去看看 张长志

tar 打包参数

c 创建新文件 (重名覆盖不提示)

f 指定原文件

x 提取文档

t 列出文档包含的文件

v 详细信息

tar 压缩参数

z gzip : .tar.gz 压缩速度最快 历史最悠久,应用最广泛

j bzip2 : .tar.bz2 压缩存档文件小,可用性不如gzip

J xz : .tar.zx 最新的方式 最佳的压缩效率

例如 把 aaa 这个文件或文件 打包成aaa.tar 压缩成aaa.tar.gz 并解压

tar cf aaa.tar aaa     //打包
tar xf aaa.tar 	       //解包

tar zcf aaa.tar.gz aaa //gzip压缩
tar jcf aaa.tar.gz aaa //bzip2压缩
tar Jcf aaa.tar.gz aaa //xz压缩

tar xf aaa.tar.gz      //解压缩

zip压缩和解压缩

压缩aaa文件 和bbb目录 并解压

zip aaa.zip aaa
unzip aaa.zip

zip -r bbb.zip bbb
unzip bbb.zip

zip all.zip * //使用通配符压缩多个文件成一个包
2016-10-15 18:14:42 MonroeD 阅读数 854
  • Facebook数据查询引擎Presto教程(含配套资料)

    版本:presto-server-0.214.tar 软件版本 presto-cli-0.214-executable CentOS7 1、presto的起因 hadoop ---hdfs----MR(java)-----hive hive底层原理用MR,速度比较慢,公司hadoop集群主要集中于晚上到凌晨,平日工作时间负载不是很高。但在工作时间内,公司业务人员有实时查询的需求,现在主要借助于hive提供业务人员的查询。hive是基于MR类的SQL查询工具,他会输入的查询SQL解析为MapReduce,能极大的降低使用大数据门槛,让一般的业务人员可以直接准对大数据进行查询,但是有一个利弊,它的查询基于MR,会让人等待比较着急,等待的时间可能是几个小时或者一天。 spark基于内存提高改良的hive,sql,现在factbook在hive上面开发一套利器,准对hive可以通过sql语句快速查询,presto。 2、Facebook为何开发Presto  Facebook的2011的数据仓库存储在少量大型hadoop fs集群,Hive是FaceBook在几年前专门为Hadoop打造的一款数据仓库工具,在以前,facebook的科学家和分析师一直靠hive进行数据分析.但hive使用MR作为底层计算框架,是专为批处理设计的,但是随着数据的不断增多,使用hive进行一个简单的数据查询可能要花费分钟或者几个小时,显然不能满足查询需求,FaceBooke也调研了其他比hive更快的工具,但是他们需要在功能有限的条件下做简单操作,以至于无法操作Facebook庞大的数据要求。 2012年开始研究自己的框架--presto,每日可以超过1pb查询,而且速度比较快,faceBook声称Presto的性能比hive要好上10倍或者100倍,presto和hive都是facebook开发的  Presto是一个开源的分布式SQL查询引擎,适用于交互式查询,数据量支持GB到PB字节。 Presto的设计和编写完全是为了解决Facebook这样规模的商业数据仓库交互式分析和处理速度的问题 Presto可以做什么 Presto支持在线数据查询,包括Hive kafka Cassandra关系数据库以及专门数据存储,一条Presto查询可以将多个数据源进行合并,可以跨越整个组织进行分析。 Presto以分析师的需求作为目标,他们期望相应速度小于1秒到几分钟,Presto要么在使用速度的快的昂贵的商业方案,提高内存,要么是消耗大量的硬件进行快速查询。(128G 64G) 本套课程教给如何在企业环境中使用Presto技术。

    202 人正在学习 去看看 张长志

1.压缩

常见的压缩命令有bzip2和gzip,但是都只能针对一个文件压缩/解压缩,因此出现了打包工具tar。其中gzip压缩后,源文件没有了,取而代之的是压缩文件.gz.

#压缩
gzip file  
#解压缩
gzip -d file.gz
#查看压缩文件
zcat file.gz
#采用最佳压缩比,并保留源文件
gzip -9 -c file > file.gz
-c:将压缩的数据输出到屏幕上,可通过重定向来处理
-#:#可取1~9,其中1速度最快,9压缩比最好

bzip2比gzip提供更好的压缩比

#压缩
bzip2 file
#解压缩
bzip2 -d file.bz2 
#读取压缩文件内容
bzcat file.bz2
#采用最佳压缩比,并保留源文件
bzip2 -9 -c file > file.bz2
#并保留源文件
bzip -k file

2.打包

tar将一文件打包成一个,并没有压缩的功能,但通过参数可以联合gzip和bzip2一起进行压缩打包。

#压缩并打包
tar -jcv -f file.tar.bz2 file
-c(create):创建打包文件
-v:查看打包过程
-j:通过bzip2压缩和解压缩
-f:文件名(-f选项建议单独写)
-z:通过gzip压缩和解压缩
#解压缩
tar -jxv -f file
-x:解打包,解压缩
#查看打包文件中有哪些文件
tar -t file.tar.bz2

再看几个选项

-C 目录 :解压缩时,可以选择特定目录
-p:保留备份数据的原本属性,常用于备份重要的配置文件
-P:保留绝对路径,即允许备份数据中含有根目录存在(重要!!!这个不要用,避免解压缩时覆盖源文件)
-exclude=FILE : 在压缩过程中,不要将FILE打包

解释-p选项,如下:在选项中加入了-p选项,首先会保留源文件的属性,其次在解压缩打包文件时会去掉绝对路径,只保留相对路径,

[root@localhost tmp]# tar -jcv -f etc.tar.bz2  /etc/
[root@localhost tmp]# tar -jxv etc.tar.bz2
被解压缩后的文件路径变成了 /tmp/etc/...
但如果加上-P选项,则会保留其源路径

仅解开单一文件的方法

[root@localhost ~]# tar -jcv -f etc.tar.bz2 /etc/
#先找到我们需要的文件名,假设解压缩shadow文件
[root@localhost ~]# tar -jtv -f etc.tar.bz2 | grep 'shadow'
#将该文件解压缩
[root@localhost ~]# tar -jxv -f etc.tar.bz2 etc/shadow(需要解压缩的文件名)

仅备份比某个时刻还要新的文件

#1.先找到比/etc/passwd还要新的文件
[root@localhost ~]# find /etc/ -newer /etc/passwd 
#2.利用tar来进行打包
2017-02-23 23:32:03 qq_37392757 阅读数 162
  • Facebook数据查询引擎Presto教程(含配套资料)

    版本:presto-server-0.214.tar 软件版本 presto-cli-0.214-executable CentOS7 1、presto的起因 hadoop ---hdfs----MR(java)-----hive hive底层原理用MR,速度比较慢,公司hadoop集群主要集中于晚上到凌晨,平日工作时间负载不是很高。但在工作时间内,公司业务人员有实时查询的需求,现在主要借助于hive提供业务人员的查询。hive是基于MR类的SQL查询工具,他会输入的查询SQL解析为MapReduce,能极大的降低使用大数据门槛,让一般的业务人员可以直接准对大数据进行查询,但是有一个利弊,它的查询基于MR,会让人等待比较着急,等待的时间可能是几个小时或者一天。 spark基于内存提高改良的hive,sql,现在factbook在hive上面开发一套利器,准对hive可以通过sql语句快速查询,presto。 2、Facebook为何开发Presto  Facebook的2011的数据仓库存储在少量大型hadoop fs集群,Hive是FaceBook在几年前专门为Hadoop打造的一款数据仓库工具,在以前,facebook的科学家和分析师一直靠hive进行数据分析.但hive使用MR作为底层计算框架,是专为批处理设计的,但是随着数据的不断增多,使用hive进行一个简单的数据查询可能要花费分钟或者几个小时,显然不能满足查询需求,FaceBooke也调研了其他比hive更快的工具,但是他们需要在功能有限的条件下做简单操作,以至于无法操作Facebook庞大的数据要求。 2012年开始研究自己的框架--presto,每日可以超过1pb查询,而且速度比较快,faceBook声称Presto的性能比hive要好上10倍或者100倍,presto和hive都是facebook开发的  Presto是一个开源的分布式SQL查询引擎,适用于交互式查询,数据量支持GB到PB字节。 Presto的设计和编写完全是为了解决Facebook这样规模的商业数据仓库交互式分析和处理速度的问题 Presto可以做什么 Presto支持在线数据查询,包括Hive kafka Cassandra关系数据库以及专门数据存储,一条Presto查询可以将多个数据源进行合并,可以跨越整个组织进行分析。 Presto以分析师的需求作为目标,他们期望相应速度小于1秒到几分钟,Presto要么在使用速度的快的昂贵的商业方案,提高内存,要么是消耗大量的硬件进行快速查询。(128G 64G) 本套课程教给如何在企业环境中使用Presto技术。

    202 人正在学习 去看看 张长志

RHEL7-文件的归档和压缩

归档的好处:

1.     方便使用,查询,阅读

2.     易于管理(批量删除文件)

压缩的好处:

1.     加快文件传输的速率

2.     节省硬盘的资源

tar文件是把几个文件和(或)目录集合成一个文件夹里,是创建备份和归档的最佳工具

tar命令的使用

语法              #tar  【选项】 包的名称  目标文件/目录

作用:打包,压缩文件

创建文档              #tar  -cf  包名.tar   文件   文件

列出所有文件      #tar  -tvf  包名.tar

提取所有文件      #tar  -xf   包名

c——create,创建

f——filename

v——显示详细信息

压缩eg#tar  cvf grub2.tar   /boot/grub2/

解压,解压到指定目录 eg#tar  xvf  包名.tar  -C 目标路径

 

file命令,作用:确定文件类型  

语法     #file   文件

Linux系统不根据后缀名识别文件类型

 

查看文件大小             #du  -sh  文件

                                   #ll   -h  文件

 

gzip的归档+压缩

格式(文件格式)*.tar.gz*.gz

语法:

压缩       #tar  zcvf  newfilename.tar.gz   文件

解压   #tar  zxvf  包名.tar,gz   -C  目标目录

 

bzip2的归档+压缩

格式(文件格式)*.tar.bz2

语法

压缩       #tar  jcvf newfilename.tar.gz2  文件

解压       #tar  jxvf  包名.tar.bz2  -C  目标目录

 

Zip软件包归档+压缩

格式(文件格式)*.zip

语法

压缩:          #zip  包名.zip  文件

                     #zip  包名.zip  目录

解压              #unzip  包名.zip  -d  目标目录

                     -d为指定解压目录

2017-03-13 00:05:37 luobing_csdn 阅读数 10
  • Facebook数据查询引擎Presto教程(含配套资料)

    版本:presto-server-0.214.tar 软件版本 presto-cli-0.214-executable CentOS7 1、presto的起因 hadoop ---hdfs----MR(java)-----hive hive底层原理用MR,速度比较慢,公司hadoop集群主要集中于晚上到凌晨,平日工作时间负载不是很高。但在工作时间内,公司业务人员有实时查询的需求,现在主要借助于hive提供业务人员的查询。hive是基于MR类的SQL查询工具,他会输入的查询SQL解析为MapReduce,能极大的降低使用大数据门槛,让一般的业务人员可以直接准对大数据进行查询,但是有一个利弊,它的查询基于MR,会让人等待比较着急,等待的时间可能是几个小时或者一天。 spark基于内存提高改良的hive,sql,现在factbook在hive上面开发一套利器,准对hive可以通过sql语句快速查询,presto。 2、Facebook为何开发Presto  Facebook的2011的数据仓库存储在少量大型hadoop fs集群,Hive是FaceBook在几年前专门为Hadoop打造的一款数据仓库工具,在以前,facebook的科学家和分析师一直靠hive进行数据分析.但hive使用MR作为底层计算框架,是专为批处理设计的,但是随着数据的不断增多,使用hive进行一个简单的数据查询可能要花费分钟或者几个小时,显然不能满足查询需求,FaceBooke也调研了其他比hive更快的工具,但是他们需要在功能有限的条件下做简单操作,以至于无法操作Facebook庞大的数据要求。 2012年开始研究自己的框架--presto,每日可以超过1pb查询,而且速度比较快,faceBook声称Presto的性能比hive要好上10倍或者100倍,presto和hive都是facebook开发的  Presto是一个开源的分布式SQL查询引擎,适用于交互式查询,数据量支持GB到PB字节。 Presto的设计和编写完全是为了解决Facebook这样规模的商业数据仓库交互式分析和处理速度的问题 Presto可以做什么 Presto支持在线数据查询,包括Hive kafka Cassandra关系数据库以及专门数据存储,一条Presto查询可以将多个数据源进行合并,可以跨越整个组织进行分析。 Presto以分析师的需求作为目标,他们期望相应速度小于1秒到几分钟,Presto要么在使用速度的快的昂贵的商业方案,提高内存,要么是消耗大量的硬件进行快速查询。(128G 64G) 本套课程教给如何在企业环境中使用Presto技术。

    202 人正在学习 去看看 张长志
目标内容

文件归档命令
创建tar包-解压-查询tar包内容


[b]1.文件归档命令tar[/b]
归档的好处:
 方便使用、查询、阅读
 易于管理 (批量删除文件)

为什么要压缩
如果直接传输会大量的占用流量带宽.导致公司的内网访问速度缓慢.
传输前压缩--传输后解压

文件压缩的好处
节约硬盘的资源.
加快文件传输的速率

[u]用到的命令:tar[/u]
作用:打包、压缩文件;tar 文件是把几个文件和(或)目录集合在一个文件夹里。是创建备份和归档的最佳工具

# tar --help
# tar -cf archive.tar foo bar #将 foo bar 文件打包 成.tar
# tar -tvf archive.tar #列出 tar中的所有文件
# tar -xf archive.tar #提前或者释放 tar中的文件

[u]打包[/u]
语法:tar [参数] 包的名称 目标文件/目录
参数:
 -c create创建文件
 -x 解压还原文件
 -v 显示执行详细过程
 -f 指定备份文件
 -t 列出备份文件内容
 -P(大写) 在使用绝对路径时,不移除文件名称前的根号,
 -C (大写) 指定解压位置
 -z 通过gzip进行压缩
 -j 通过bzip2解压缩

注意:在起包的名称的时候,后缀要根据你要压缩的类型添加相应的后缀

# tar -cvf grub2.tar /boot/grub2/ --归档
# tar -tvf grub2.tar|more --查看归档中的文件
# tar -cvfP grub2.tar /boot/grub2/ --归档 根目录(危险,解压后可能覆盖根目录)
# tar -xvf grub2.tar -C /usr/src/ --提取释放 -C 指定位置


在LINUX中,你如何来区别文件的类型、后缀
比如 sh 脚本 aa

[u]file命令,查看文件类型[/u]
linux对于文件的扩展名没有像windows要求的那么严格,所以在使用linux的过程中经常会遇到有些文件根本就没有扩展名,哪么我们应该如何去判断没有扩展名的文件,到底是文件还是目录呢?
作用:确定文件类型
语法:file 文件名

# file grub2.tar
# file /etc/init.d/nginx

file 文件类型
[img]http://dl2.iteye.com/upload/attachment/0123/6580/b8386c78-cbc8-3637-ac46-79f86b5285f5.png[/img]

[u]文件大小[/u]
对比文件的大小:
# du -sh /boot/grub2/
# ll -h /boot/grub2/


[b]2. Linux文件压缩[/b]
压缩工具:gzip bzip2 zip tar
3.1 压缩格式
常见的压缩格式:gz、bz2、xz、zip、Z
格式(文件名格式): .tar.gz 或 .tgz
语法格式:tar zcvf newfile.tar.gz SOURCE

tar.gz格式
# tar zcf grub2.tar.gz /boot/grub2 #打包压缩
# tar zxf grub2.tar.gz #解压

tar.bz2格式
# tar jcf grub2.tar.gz /boot/grub2 #打包压缩
# tar jxf grub2.tar.gz #解压

rar格式
# rar a grub2.rar /boot/grub2 #打包压缩
# rar x grub2.tar.gz #解压

zip格式
# zip -r grub2.zip /boot/grub2 #打包压缩
# unzip grub2.tar.gz -d /tmp #解压

gzip格式
# gzip grub2.tar #打包压缩
# gzip -d grub2.tar.gz #解压

bzip2格式
# bzip2 -k grub2.tar #打包压缩
# bzip2 -d grub2.tar.bz2 #解压

xz格式
# xz -zk grub2.tar #打包压缩
# unxz -dk grub2.tar.xz #解压
2013-12-25 08:53:00 weixin_30822451 阅读数 3
  • Facebook数据查询引擎Presto教程(含配套资料)

    版本:presto-server-0.214.tar 软件版本 presto-cli-0.214-executable CentOS7 1、presto的起因 hadoop ---hdfs----MR(java)-----hive hive底层原理用MR,速度比较慢,公司hadoop集群主要集中于晚上到凌晨,平日工作时间负载不是很高。但在工作时间内,公司业务人员有实时查询的需求,现在主要借助于hive提供业务人员的查询。hive是基于MR类的SQL查询工具,他会输入的查询SQL解析为MapReduce,能极大的降低使用大数据门槛,让一般的业务人员可以直接准对大数据进行查询,但是有一个利弊,它的查询基于MR,会让人等待比较着急,等待的时间可能是几个小时或者一天。 spark基于内存提高改良的hive,sql,现在factbook在hive上面开发一套利器,准对hive可以通过sql语句快速查询,presto。 2、Facebook为何开发Presto  Facebook的2011的数据仓库存储在少量大型hadoop fs集群,Hive是FaceBook在几年前专门为Hadoop打造的一款数据仓库工具,在以前,facebook的科学家和分析师一直靠hive进行数据分析.但hive使用MR作为底层计算框架,是专为批处理设计的,但是随着数据的不断增多,使用hive进行一个简单的数据查询可能要花费分钟或者几个小时,显然不能满足查询需求,FaceBooke也调研了其他比hive更快的工具,但是他们需要在功能有限的条件下做简单操作,以至于无法操作Facebook庞大的数据要求。 2012年开始研究自己的框架--presto,每日可以超过1pb查询,而且速度比较快,faceBook声称Presto的性能比hive要好上10倍或者100倍,presto和hive都是facebook开发的  Presto是一个开源的分布式SQL查询引擎,适用于交互式查询,数据量支持GB到PB字节。 Presto的设计和编写完全是为了解决Facebook这样规模的商业数据仓库交互式分析和处理速度的问题 Presto可以做什么 Presto支持在线数据查询,包括Hive kafka Cassandra关系数据库以及专门数据存储,一条Presto查询可以将多个数据源进行合并,可以跨越整个组织进行分析。 Presto以分析师的需求作为目标,他们期望相应速度小于1秒到几分钟,Presto要么在使用速度的快的昂贵的商业方案,提高内存,要么是消耗大量的硬件进行快速查询。(128G 64G) 本套课程教给如何在企业环境中使用Presto技术。

    202 人正在学习 去看看 张长志

转载:http://www.1987.name/659.html

 

数据压缩归档和备份是系统管理的日常工作,定期备份不可小视,归档和压缩对于系统管理员或是普通用户来说都经常用到的操作,有很多中压缩格式,需要结合不同的使用方法才能达到最佳的压缩效果。

使用tar归档

tar命令可以用来归档文件,用它可以将多个文件保存为单个文件,同时保留所有文件的属性,比如所有者、权限等。

常用选项

  • -a自动判断压缩格式
  • -c建立一个压缩文件的参数指令。
  • -x解开一个压缩文件的参数指令。
  • -t查看tarfile里面的文件。
  • -r向归档文件中追加文件。
  • -d比较归档文件与文件系统的内容。
  • -u通过检查时间戳来更新归档文件中的内容。
  • -z调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩。
  • -j调用bzip2来压缩归档文件。
  • -v解压缩的过程中显示文件。
  • -f使用归档名,归档名必须紧跟在-f之后。
  • -p使用原文件的原来属性(属性不会依据使用者而变)。
  • -P可以使用绝对路径来压缩。
  • -N yyyy/mm/dd比日期yyyy/mm/dd还要新的才会被归档。
  • -C指定需要将文件提取到哪个目录。
  • -A合并多个归档文件。
  • -X排除文件列表中的文件名。
  • --exclude FILE排除FILE。
  • --exclude-vcs排除版本控制系统目录。

常见用法

-c选项创建归档文件,-f是指定归档文件名:

tar -cf test.tar f1 f2 f3 f4 f5...

使用-r追加选项向归档文件中追加文件:

tar -rvf test.tar new_file

使用-t查看归档文件里面的内容:

tar -tf test.tar

使用-v或者-vv可以显示详细的内容信息:

tar -tvvf inotify-tools-3.14.tar.gz
drwxrwxrwx 1000/1000         0 2010-03-14 21:53:46 inotify-tools-3.14/
-rw-r--r-- 1000/1000        39 2010-03-12 21:53:47 inotify-tools-3.14/AUTHORS
...
-rwxr-xr-x 1000/1000     18615 2010-03-12 21:53:47 inotify-tools-3.14/depcomp

使用-x将归档文件提取出来:

tar -xf test.tar

使用-C指定需要将文件提取到/data/test下:

tar -xf test.tar -C /data/test

在归档文件中提取指定的文件:

tar -xvf test.tar file1 file5

在tar中使用stdin和stdout

在归档时,可以将stdout指定为输出文件,这样另一个命令就可以通过管道符将它作为stdin,并进行其他处理:

tar -cf - file1 file2 file3 | tar -xvf - -C /data/test

拼接两个归档文件

使用-A选项拼接两个归档文件,拼接后的文件名是test1.tar:

tar -Af test1.tar tet2.tar

通过时间戳来更新归档文件中的内容,使用-u选项指明只有比归档文件中的同名文件更新的时候才进行添加:

tar -uvvf 1.tar ddd
-rw-r--r-- root/root         4 2013-01-05 14:46:36 ddd

使用-d来比较归档文件和文件系统中的差别:

tar -df 1.tar aaa
aaa: Mod time differs
aaa: Size differs
aaa: Mod time differs
aaa: Size differs

使用--delete从归档文件中删除文件:

tar -f test.tar --delete file1 file2...

通过--exclude从归档文件中排除部分文件

tar -cf test.tar * --exclude "*.jpg"

将需要排除的文件写入列表文件同时配合-X选项排除它们:

cat list
file1
file2

tar -cf test.tar * -X list

这样是排除了file1和file2两个文件。

排除版本控制系统目录

通常使用tar归档文件来分发源码,大多数源码都是使用版本控制系统进行维护,常见的有subversion、git、mercurial、cvs等,版本控制系统中的代码目录包含用来管理版本的特殊目录,比如.svn、.git。为了在归档时排除这些目录,可以使用tar命令的--exclude-vcs选项排除它们。

tar --exclude-vcs -czvvf source_code.tar.gz svn_dir

打印归档后文件总字节数

tar -cf 3.tar * --totals
Total bytes written: 40960 (40KiB, 21MiB/s)

压缩归档文件

归档文件通常被压缩成以下格式之一:

  • file.tar.gz  (-z选项指定gzip格式)
  • file.tar.bz2 (-j选项指定bunzip2格式)
  • file.tar.lzma (--lzma指定lzma格式)

使用cpio归档

cpio是类似于tar的归档格式,也可以保留文件属性,一般用于RPM软件包、Linux内核initramfs文件。cpio是以绝对路径进行归档,进行提取时cpio会使用绝对路径提取内容,不像tar那样会去除路径开头/转换为相对路径,常用的选项有:

  • -o指定输出。
  • -v打印归档文件列表。
  • -i指定输出。
  • -t列出归档文件中的内容。
  • -d提取归档文件内容。

cpio是用过stdin获取输入文件名,后将归档文件写入stdout,需要将stdout重定向到一个文件来接受cpio的输出:

echo file1 file2 file3 | cpio -ov > test.cpio

列出cpio归档文件中的内容:

cpio -it < test.cpio

从cpio归档文件中提取文件:

cpio -id < test.cpio

cpio在覆盖文件时候不会显示提示信息,会直接覆盖。

使用gunzip或gzip解压缩

gzip是Linux下常用的压缩格式,gzip、gunzip、zcat都可以处理gzip格式压缩文件。gzip只能够压缩单个文件,不能压缩多个文件。gzip在压缩时候会删除原文件,并生成一个压缩后的.gz文件。

使用gzip命令压缩文件filename:

gzip test.txt
ls
test.txt.gz

列出压缩文件的属性信息:

gzip -l test.txt.gz
         compressed        uncompressed  ratio uncompressed_name
                 34                  53 101.9% test.txt

使用gunzip解压.gz文件:

gunzip test.txt.gz
ls
test.txt

从stdin读取并写入到stdout:

cat filename | gzip -c > file.gz

结合tar压缩归档文件,-a是根据文件扩展名自动判断压缩格式:

tar -czvf test.tar.gz *
tar -cavf test.tar.gz *

使用zcat命令直接读取gzip格式文件:

zcat test.txt.gz
this is a test line

gzip可以指定压缩率,一共有9个级别:

  • 1级的压缩率最低,压缩速度最快。
  • 9级的压缩率最高,压缩速度最慢。
gzip -9 test.jpg

使用bunzip或bzip解压缩

bunzip2是另一种与gzip类似的压缩技术,能够生成比gzip跟小(压缩比更高)的文件。压缩后会生成一个.bz2文件。也会删除原文件生成新文件。压缩率和gzip相同。

使用bzip2进行压缩:

bzip2 filename
ls
filename.bz2

解压bzip2文件:

bunzip2 filename.bz2

结合tar压缩归档文件:

tar -cjvf test.tar.bz2 *
tar -cavf test.tar.bz2 *

使用lzma压缩

lzma是一个交新的压缩工具,比gzip和bzip2有更好的压缩率,不过大多数Linux发行版没有安装,需要自行安装。使用方法基本和gzip、bzip2一样。

用lzma压缩文件:

lzma filename
或者加上压缩等级,这样生成的压缩包更小
lzma -9 filename
上面的这种压缩方法默认会删除filename文件,如果想保留原始文件可以加上-k,如下
lzma -k -9 filename
ls filename.lzma

上面的这些的方法只能压缩文件,无法压缩文件夹,可以先用tar将文件夹打包,然后再用lzma进行压缩即可

tar  -cf  dir.tar dir

lzma -9 dir.tar

会生成文件 dir.tar.lzma

如果要解压,可以使用tar一次性完成  tar -xf dir.tar.lzma --lzma -C ./

用unlzma加压文件

unlzma filename.lzma

结合tar压缩归档文件

tar -cvf --lzma test.tar.lzma *
tar -cavf test.tar.lzma *

用zip归档和压缩

ZIP是种流行的压缩格式,很多平台都可以使用。压缩后会另外生成.zip扩展名的压缩文件。

压缩

命令选项

  • -A 调整可执行的自动解压缩文件。
  • -b<工作目录> 指定暂时存放文件的目录。
  • -c 替每个被压缩的文件加上注释。
  • -d 从压缩文件内删除指定的文件。
  • -D 压缩文件内不建立目录名称。
  • -f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
  • -F 尝试修复已损坏的压缩文件。
  • -g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
  • -i<范本样式> 只压缩符合条件的文件。
  • -j 只保存文件名称及其内容,而不存放任何目录名称。
  • -J 删除压缩文件前面不必要的数据。
  • -k 使用MS-DOS兼容格式的文件名称。
  • -l 压缩文件时,把LF字符置换成LF+CR字符。
  • -ll 压缩文件时,把LF+CR字符置换成LF字符。
  • -L 显示版权信息。
  • -m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
  • -n<字尾字符串> 不压缩具有特定字尾字符串的文件。
  • -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
  • -q 不显示指令执行过程。
  • -r 递归处理,将指定目录下的所有文件和子目录一并处理。
  • -S 包含系统和隐藏文件。
  • -t<日期时间> 把压缩文件的日期设成指定的日期。
  • -T 检查备份文件内的每个文件是否正确无误。
  • -u 更换较新的文件到压缩文件内。
  • -v 显示指令执行过程或显示版本信息。
  • -V 保存VMS操作系统的文件属性。
  • -w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
  • -x<范本样式> 压缩时排除符合条件的文件。
  • -X 不保存额外的文件属性。
  • -y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
  • -z 替压缩文件加上注释。
  • -$ 保存第一个被压缩文件所在磁盘的卷册名称。
  • -<压缩效率> 压缩效率是一个介于1-9的数值。

常见用法

对文件采用zip格式进行压缩:

zip file.zip file

-r选项对目录和我呢见进行递归操作:

zip -r test.zip dir file...

-u选项更新压缩文件中的内容:

zip file.zip -u new_file

从压缩文件中删除内容:

zip -d file.zip file.txt

解压

使用unzip命令解压缩zip文件。

命令选项

  • -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
  • -f 更新现有的文件。
  • -l 显示压缩文件内所包含的文件。
  • -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
  • -t 检查压缩文件是否正确。
  • -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
  • -v 执行是时显示详细的信息。
  • -z 仅显示压缩文件的备注文字。
  • -a 对文本文件进行必要的字符转换。
  • -b 不要对文本文件进行字符转换。
  • -C 压缩文件中的文件名称区分大小写。
  • -j 不处理压缩文件中原有的目录路径。
  • -L 将压缩文件中的全部文件名改为小写。
  • -M 将输出结果送到more程序处理。
  • -n 解压缩时不要覆盖原有的文件。
  • -o 不必先询问用户,unzip执行后覆盖原有文件。
  • -P<密码> 使用zip的密码选项。
  • -q 执行时不显示任何信息。
  • -s 将文件名中的空白字符转换为底线字符。
  • -V 保留VMS的文件版本信息。
  • -X 解压缩时同时回存文件原来的UID/GID。
  • -d<目录> 指定文件解压缩后所要存储的目录。
  • -x<文件> 指定不要处理.zip压缩文件中的哪些文件。

常见用法

要从zip文件中提取内容:

unzip file.zip

列出压缩文件中的内容:

unzip -l test.zip

验证压缩文件是否完整:

unzip -t test.zip

转载于:https://www.cnblogs.com/pengdonglin137/p/3489969.html

没有更多推荐了,返回首页