首页 > 代码库 > linux下文件打包、压缩详解

linux下文件打包、压缩详解

Linux平台下,有如下几种常见的压缩工具:

=========================================================================
工 具 文件扩展名 描述
-------------------------------------------------------------------------
bzip2 .bz2 采用Burrows-Wheeler块排序文本压缩算法和霍夫曼编码
compress .Z 原始的Unix文件压缩工具,逐渐消失中
gzip .gz GNU压缩工具,用Lempel-Ziv编码
zip .zip Windows上PKZIP工具的Unix实现
=========================================================================

1.bzip2
1)bzip2:用来压缩文件
2)bzcat:用来显示压缩的文本文件内容
3)bunzip2:用来解压缩.bz2文件
4)bzip2recover:用来尝试恢复损坏的压缩文件
用法:

$ bzip2 file

默认情况下,bzip2命令尝试压缩原始文件,并用压缩后的文件(同样的文件名加上.bz2扩展)替换它。
解压:

$ bunzip2 file.bz2

如果file是文本文件,可以用bzcat查看:

$ bzcat file.bz2

2.gzip
1)gzip:压缩文件
2)gzcat:查看压缩过的文本文件
3)gunzip:解压文件
用法跟bzip2一样。

3.tar
tar的命令格式:

tar function [options] object1 object2

function参数定义了tar命令应该做什么,如下表:

============================================================================
功 能 全名名称 描 述
----------------------------------------------------------------------------
-A --concatenate 将一个已有tar归档文件追加到另一个已有tar归档文件
-c --create 创建一个新的tar归档文件
-d --diff 检查归档文件和文件系统的不同之处
--delete 从已有tar归档文件中删除
-r --append 追加文件到已有tar归档文件末尾
-t --list 列出已有tar归档文件的内容
-u --update 将比tar归档文件中已有的同名文件新的文件追加到该tar归档文件中
-x --extract 从已有tar归档文件中提取文件
============================================================================

每个功能可用选项来针对tar归档文件定义一个特定行为。下表列出了这些选项中能和tar命令一起使用的最常用的选项。

==================================================================
选 项 描 述
------------------------------------------------------------------
-C dir 切换到指定目录
-f file 输出结果到文件或设备file
-j 将输出重定向给bzip2命令来压缩
-p 保留所有文件权限
-v 在处理文件时显示文件
-z 将输出重定向给gzip命令来压缩
==================================================================

通常,这些选项会合在一起使用。
例如,你可以用如下命令创建一个归档文件:

tar -cvf test.tar test/ test2/

上面的命令创建了一个含有test和test2目录内容的test.tar归档文件。
然后,用这个命令

tar -tf test.tar

列出tar文件test.tar的内容,但并不解压。
最后,用下面的命令

tar -xvf test.tar

从test.tar提取内容。