Linux下的解压缩命令

来源:互联网 发布:手机淘宝店虚拟怎么做, 编辑:程序博客网 时间:2024/05/16 14:41

在Linux中有很多的压缩工具,本文主要介绍gzip/gunzip/zcat、bzip2/bunzip2/bzcat、tar、zip/unzip。

为了方便演示。我们首先建立一个名为“test.txt”的文本文件,其内容如下所示:

Hello!This is a test!End of file.

1. gzip/gunzip/zcat

gzip用于压缩普通文件;gunzip用于解压缩 gzip 所建立的压缩文件;gcat用于查看gzip建立的压缩文件源内容。
gzip只能用于压缩普通文件,注意,是普通文件。不能将整个目录压缩为单个文件,如果我们以递归形式压缩目录,则gzip会递归的进入每个子目录并依次压缩其中的普通文件。gzip创建的压缩文件默认以.gz、-gz和.z为扩展名,具体为哪个要视文件系统类型而定,表1展示了不同后缀名所对应的文件系统。

扩展名 文件系统 .gz Linux上的EXT文件系统 -gz VFS(虚拟文件系统) .z MS-DOS(微软磁盘操作系统)、Windows NT FAT、OS/2 FAT、Atari

gzip的参数选项如下所示:

-c:将压缩后的数据输出都屏幕(不生成压缩文件)。-d:解压缩文件-f:强制覆盖已有的文件-k:保留源文件(默认是不保留的)-t:测试压缩文件的完整性(与-v选项一起使用)-r:递归的压缩所有文件-v:详细的输出执行过程(默认不输出)-1:以速度最快压缩。-9:以压缩率最好压缩。(可以从1-9变化,默认是6)

例如我们要压缩之前创建的”test.txt”文件,可以输入以下指令:

$ gzip -krv test.txttest.txt:     0.0% -- replaced with test.txt.gz

注意,gzip压缩工具默认是将源文件替换为压缩文件,如果要保留源文件,需要显式的指定’-k’参数,以上-krv表示保留源文件、递归的压缩所有文件并详细的输出压缩过程。
从输出中可以看到有三个参数:源文件–test.txt,压缩比–0.0%和输出文件–test.gz。

如果我们要解压缩刚刚创建的文件,只需输入以下指令

$ gzip -dv test.txtgzip: test.txt already exists; do you wish to overwrite (y or n)? ytest.txt.gz:      0.0% -- replaced with test.txt

从输出可以看到,由于当前目录下存在”test.txt”文件, 所以会出现是否覆盖的提示,如果我们不想让它输出次内容。可以加上”-f”参数。

gunzip是gzip的解压缩版,也就是只提供解压缩功能,其参数与gzip一样(不包括”-d”参数),比如我们要解压缩刚刚创建的test.txt.gz可以如下输入:

$ gunzip -v test.txt.gztest.txt.gz:      0.0% -- replaced with test.txt

zcat是用来查看gzip压缩文件对应的源文件的内容。使用如下:

$ zcat test.txt.gzThis is a test!

2. bizp2/bunzip2/bcat

bzip2 相比 gzip 具有更好的压缩比, 它的用法几乎与gzip 相同。bzip2建立的压缩文件以.bz2为扩展名,下面是bzip2的常用参数:

-c:将压缩后的数据输出都屏幕(不生成压缩文件)。-d:解压缩文件-f:强制覆盖已有的文件-k:保留源文件(默认是不保留的)-t:测试压缩文件的完整性(与-v选项一起使用)-r:递归的压缩所有文件-v:详细的输出执行过程(默认不输出)-z:压缩文件(默认参数)

bunzip2用于解压缩bzip2创建的压缩文件,bcat则是查看bzip2压缩文件对应源文件的内容。它们的使用方法与gzip/gunzip/zcat类似,不在这里赘述,请参照gzip/gunzip/zcat的用法。

3. tar

上面的gzip和bizp2命令大多只针对单一的文件进行压缩,虽然也可以对目录进行递归的压缩,但是是基于单个文件进行压缩的,也就是说会为该目录下每一个文件创建一个压缩文件,而不是创建一整个归档文件,这时,就要使用到tar命令了,它即可单简单的将多个目录打包(不进行压缩),也可以通过gzip和bzip2对打包的内容加以压缩。tar命令有多个参数支持多种操作。下面就来看看tar命令的使用吧!

tar命令的参数分为多个种类,包括主操作、操作修饰、重写控制、设备分块、选择归档格式、设备分块、压缩选项和提示选项等等。本文指介绍主操作、选择归档格式、压缩选项和提示选项。这些参数如下:

/* 主操作选项 */-A:追加tar格式的归档文件到归档-c:创建一个新的归档-r:追加文件到归档结尾-t:列出归档文件的内容-u:更新归档中的文件,如果归档中不存在则添加。-x:从归档中解出文件/* 选择归档格式选项 */-H:后接文档格式,文档格式有以下几种   gnu-- 1.13.x(默认格式也是常用的)   oldgnu--GNU format as per tar <=1.12   pax--POSIX 1003.1-2001(pax)   posix--等同于 pax   ustar-- POSIX 1003.1-1988 (ustar) 格式   V7--old V7 tar 格式/* 压缩选项 */-a:根据扩展名自动确定压缩程序-j:通过bizp2来压缩-z:通过gzip来压缩-Z:通过compress来压缩/* 其他选项 */-v:详细的输出压缩过程-f:指定压缩后的文件名或要解压缩的文件名

比如我么要压缩上述的test.txt文件,可以输入如下命令:

$ tar -jcf test.txt.tar.bz2 test.txt

或者

$ tar -zcf test.txt.tar.gz test.txt

或者

$ tar -acf test.txt.tar.gz test.txt

上面第一种和第二种分别使用不同的压缩工具进行压缩,第三种是根据扩展名自动确定压缩工具。如果我们要解压,只用将”-c”参数换成”-x”参数即可。

当然我们也可以不进行压缩,只是将多个文件进行简单的归档,可以如下输入:

$ tar -cf [output-file] [input-file]

其中output-file和input-file分别指定输出文件名和要进行归档的文件的名字。

0 0
原创粉丝点击