如何在Linux下压缩文件

对许多用户来说 , 在DOS和Windows环境下利用工具软件WinZip、ARJ等压缩或解压文件是比较容易的事 。但是 , 在Linux中如何对文件进行压缩与解压呢?


用tar建立存档


tar是“tape archive”(磁带存档)的简称 , 它出现在还没有软盘驱动器、硬盘和光盘驱动器的计算机早期阶段 。那时软件的发行和备份都需要大卷的磁带 , 计算机上运行的头几个程序中就得有一个是磁带的阅读程序 。随着时间的推移 , tar命令逐渐变为一个将很多文件进行存档的工具 , 目前许多用于Linux操作系统的程序就是打包为tar档案文件的形式 。

tar 命令的格式是:

tar [option]



tar命令有很多参数 , 利用f选项、设备或文件的名字可以指示tar命令将档案置于特定的设备或文件中 。当为tar的档案创建一个文件时,这个文件名的扩展通常是如果指定了一个目录名,那么它所有的子目录都会被包含在档案之中 。

利用tar命令和f选项的格式如下所示:

#tar opionsf archive-name.tar directory-and-filenames



要创建一个档案应使用c选项 , 与f选项一起 , c选项会在设备或文件中创建档案 , 应在f选项的左边输入这一选项 。在下例中 , 目录mydir和它所有的子目录都被存入文件myarch.tar中 。

#tar cf myarch.tar mydir



如果想要改动已经存档的目录中的文件 , 可以使用u选项使tar更新档案中的文件 。tar比较每一个档案文件与相应用户目录中文件最近一次修改的时间,然后将上一次存档之后又被修改过的文件拷贝到档案文件中去 。在用户目录中新创建的文件也会被添加到档案文件中 。在下面的例子中,用户用mydir目录中最近被修改或添加的文件来对myarch.tar文件进行更新 。

#tar uf myarch.tar mydir



如果想查看在一个档案中存储着哪些文件 , 可以使用tar命令和t选项 。下面命令列出所有存储在myarch.tar档案中的文件:

#tar tf myarch.tar



要将文件备份到一个特定的设备 , 只须把设备名作为档案 。在下面的例子中 , 用户在/dev/fdo设备的软盘中创建了一个档案,并将mydir目录中所有的文件都拷贝到档案中 。

#tar cf/dev/fdo mydir



要恢复设备磁盘中的文件,可使用xf选项:

#tar xf/dev/fdo



如果所备份的文件大小超过设备可用的存储器,比如软盘,此时就可以创建一个使用多个标号的tar档案 。当使用m选项向一个软驱进行存档时,tar命令在一张软盘已满的时候会提醒再放入一张新的软盘 。

#tar cmf/dev/fdo mydir



要想恢复几张盘中的档案,只要将第一张软盘放入软驱,然后输入有x和m选项的tar命令 。必要时会被提醒放入另外一张软盘 。

#tar xmf/dev/fdo



tar操作不会对档案文件实行压缩操作 。如果想压缩档案文件,可以指示tar激活gzip实用工具,在存档之前对文件进行压缩 。利用z选项,tar在对文件存档之前首先要使用gzip来压缩文件 。当恢复文件时,同样的Z选项将激活gzip对文件解压 。

#tar czf myarch.tar mydir



值得注意的是 , 压缩档案中的单个文件和整体压缩档案是不同的 。通常档案文件是为了便于传输而把几个文件组合成为一个tar文件 。为了缩短传输时间,档案应当越小越好 , 可以将其压缩然后传送压缩后的版本 。接收者可以对之解压缩 , 然后恢复tar文件 。在tar文件上使用gzip将会产生有.tar.gz扩展名的文件 。扩展名.gz被加到被压缩的gzip文件名之后 。

下面的例子创建了myarch.tar的一个压缩的版本,它具有了.gz的扩展名 。

#gzip myarch.tar
#ls
#myarch.tar.gz



tar命令虽然有非常多的参数 , 但是使用起来并不困难 , 可以快速而又简单地为任何需要的子目录生成档案文件 。

推荐阅读