[原创]Linux学习系列之档案的压缩与打包_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2690 | 回复: 0   主题: [原创]Linux学习系列之档案的压缩与打包        下一篇 
panpan.nie
注册用户
等级:大校
经验:4754
发帖:217
精华:2
注册:1970-1-1
状态:离线
发送短消息息给panpan.nie 加好友    发送短消息息给panpan.nie 发消息
发表于: IP:您无权察看 2015-6-10 11:37:46 | [全部帖] [楼主帖] 楼主

Linux学习系列之档案的压缩与打包

减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。Linux环境支持的压缩指令非常多,且不同的指令所用的压缩技术不同,所以需要对应的指令来解压缩。Linux的档案属性和文件名是绝对没有关系的,但是为了方便记忆,常用的压缩文件扩展名有:

*.Z      compress 程序压缩的档案

*.gz     gzip程序压缩的档案

*.bz2    bzip2程序压缩的档案

*.tar     tar 程序打包的数据,并没有压缩过

*.tar.gz   tar程序打包的档案,并且经过gzip的压缩

*.tar.bz2  tar程序打包的档案,并且经过bzip2的压缩

gzipbzip2 和过时的compress 是压缩指令,通常仅能针对一个档案来压缩和解压缩。而单纯的tar功能只是打包,即是将很多档案集结成为一个档案。

一、gzip压缩和解压缩指令

1命令格式:

gzip[参数][文件或者目录]

2命令功能:

gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。

3命令参数:

-a 将所有由PATH目录中可以找到的指令均列出

-c或--stdout或--to-stdout  把压缩后的文件输出到标准输出设备,不去更动原始文件。 

-d或--decompress或----uncompress  解开压缩文件。 

-f或--force  强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。 

-k : 保留源文件,而不会删除原档案

-r或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。

-t或--test  测试压缩文件是否正确无误。 

-v或--verbose  显示指令执行过程。 

-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。

(这里只列举了部分常用参数,详情请使用man gzip 查询

4使用实例:

实例1当前目录下的每个文件压缩成.gz文件

命令:gzip *

输出:

北京联动北方科技有限公司

说明:gzip 只对文件进行压缩,压缩后源文件不存在。将上述文件解压缩为:gzip -dv *

实例2显示使用gzip压缩后的文本内容

命令:zcat 压缩后的文件名

输出:

北京联动北方科技有限公司

bzip2压缩和解压缩指令

1命令格式:

bzip[参数][文件或者目录]

2命令功能:

*.bz2 的压缩程序,压缩比比gzip 更好,参数和gzip相似

3.命令参数:

-c : 将压缩的过程产生的数据输出到屏幕

-d : 解压缩的参数

-k : 保留源文件,而不会删除原档案

-z : 压缩的参数

-v : 可以显示出原档案/压缩文件的压缩比信息

4. 使用实例:

实例1指定文件压缩成.bz2文件

命令:bzip2 a.sh  或者 bzip -k b.sh (保留源文件)

输出:

北京联动北方科技有限公司

说明:将上述文件解压缩命令:bzip2 -d a.sh.bz2

      显示压缩后的文本内容: bzcat a.sh.bz2

三、tar打包指令

1命令格式:

tar[必要参数][选择参数][文件]

2命令功能:

用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的

3命令参数:

必要参数有如下:

-A 新增压缩文件到已存在的压缩

-B 设置区块大小

-c 建立新的压缩文件

-d 记录文件的差别

-r 添加文件到已经压缩的文件

-u 添加改变了和现有的文件到已经存在的压缩文件

-x 从压缩的文件中提取文件

-t 显示压缩文件的内容

-z 支持gzip解压文件

-j 支持bzip2解压文件

-Z 支持compress解压文件

-v 显示操作过程

-l 文件系统边界设置

-k 保留原有文件不覆盖

-m 保留文件不被覆盖

-W 确认压缩文件的正确性

可选参数如下:

-b 设置区块数目

-C 切换到指定目录

-f 指定压缩文件,这个参数是最后一个参数,后面只能接档案名。

--help 显示帮助信息


--version 显示版本信息


4. 使用实例:

实例1把文件 a.sh 和 目录project/ 及test/ 下的所有文件打包并使用gzip压缩

命令:tar -czvf aa.tar.gz a.sh project/ test/

实例2把上面的压缩包解压到指定目录下

命令:tar -xzvf aa.tar.gz -C study/

结果:

北京联动北方科技有限公司

实例3

#tar cvf    打包(但不压缩)


#tar xvf   解包到当前目录下


#tar czvf   打包并压缩(实际使用gzip进行的压缩)


#tar xzvf  解包解压缩


# tar -cf all.tar *.jpg将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -tf all.tar列出all.tar包中所有文件,-t是列出文件的意思
tar -N "2012/11/13" -zcvf log17.tar.gz test在 文件夹当中,比某个日期新的文件才备份
tar -zxvf /opt/soft/test/log30.tar.gz log2013.log 只将 /tar 内的 部分文件解压出来


四、总结

1、*.tar 用 tar -xvf 解压

2、*.gz 用 gzip -d或者gunzip 解压

3、*.tar.gz和*.tgz 用 tar -xzf 解压

4、*.bz2 用 bzip2 -d或者用bunzip2 解压

5、*.tar.bz2用tar -xjf 解压

6、*.Z 用 uncompress 解压

7、*.tar.Z 用tar -xZf 解压

8、*.rar 用 unrar e解压

9、*.zip 用 unzip 解压

示例:

.tar


  解包:tar xvf FileName.tar
  打包:tar cvf FileName.tar DirName

 (注:tar是打包,不是压缩!)
———————————————
.gz


  解压1:gunzip FileName.gz
  解压2:gzip -d FileName.gz
  压缩:gzip FileName
  .tar.gz 和 .tgz
  解压:tar zxvf FileName.tar.gz
  压缩:tar zcvf FileName.tar.gz DirName

 ———————————————
.bz2


  解压1:bzip2 -d FileName.bz2
  解压2:bunzip2 FileName.bz2
  压缩: bzip2 -z FileName

 .tar.bz2


  解压:tar jxvf FileName.tar.bz2 或tar -bzip xvf FileName.tar.bz2
  压缩:tar jcvf FileName.tar.bz2 DirName

 ———————————————
.bz


  解压1:bzip2 -d FileName.bz
  解压2:bunzip2 FileName.bz
  压缩:未知

 .tar.bz


  解压:tar jxvf FileName.tar.bz
  压缩:未知

 ———————————————
.Z


  解压:uncompress FileName.Z
  压缩:compress FileName

 .tar.Z


  解压:tar Zxvf FileName.tar.Z
  压缩:tar Zcvf FileName.tar.Z DirName

 ———————————————
.zip


  解压:unzip FileName.zip
  压缩:zip FileName.zip DirName
  压缩一个目录使用 -r 参数,-r 递归。例: $ zip -r FileName.zip DirName

 ———————————————
.rar


  解压:rar x FileName.rar
  压缩:rar a FileName.rar DirName
 




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论