tar命令在进行操作的时候,就会把正在添加到档案文件中去的子目录和文件的文件名显示出来。使用w参数,即交互参数,这样tar命令在执行的过程当中会询问是否想加入每个文件。当想有选择地备份内容不多的子目录的时候,这样就非常地方便,如下所示:
#tarcwfmydir.tarmydir
addmydir?y
addmydir/file1?n
addmydir/file2?y
addmydir/file3?n
addmydir/mydir2?y
addmydir/mydir2/file21?y
addmydir/mydir2/file22?n
addmydir/mydir2/file23?y
在上面的例子中,没有把文件file1、file3和文件file22归档。可以使用tar命令的t参数列出档案文件中的内容,f参数定义操作所使用的tar档案文件,如下所示:
#tartfmydir.tar
mydir/
mydir/file2
mydir/mydir2/
mydir/mydir2/file21
mydir/mydir2/file23
需要注意的是,如果参数的顺序放错了,tar命令会显示出错信息并退出。
下面就来看看如何来释放整个的档案文件或者其中的某一个文件。如果想释放其中所有的文件,可以同时使用-x释放参数和-f。为了了解命令执行的过程,还可以加上-v参数:
#tarxvfmydir.tar
mydir/
mydir/file2
mydir/mydir2/
mydir/mydir2/file21
mydir/mydir2/file23
如果只是想从档案文件中释放几个文件的话,可以再次使用w参数:
#tarxvwfmydir.tar
extractmydir/?y
mydir
extractmydir/file2?y
mydir/file2
extractmydir/mydir2/?y
mydir/mydir2/
extractmydir/mydir2/file21?y
mydir/mydir2/file21
extractmydir/mydir2/file23?y
mydir/mydir2/file23
上例表明查看了档案文件,并交互地释放了文件。如果只想从档案文件中释放某一个文件,可以在命令行中指定这个文件。作为示例,我先删除了原始的mydir子目录,然后使用一个空的子目录进行如下操作:
#tarxfmydir.tarmydir/mydir2/file23
#treemydir
mydir
--mydir2
--file23
1directory,1file
注意,正如所看到的只有一个文件被释放出来。虽然tar命令不会覆盖整个的子目录,但是它会覆盖掉那些有着相同文件名的文件。
值得一提的是,还可以使用其它程序,如BRU-2000或者taper脚本程序来备份系统或者选定的文件和子目录。OpenLinux操作系统也可以通过cron日程安排来自动进行文件的归档整理工作。
建立cpio档案文件
cpio命令可以从tar或者cpio档案文件中拷入或者拷出文件。因为cpio命令和tar命令兼容,所以我这里不再详细介绍它如何工作。但是这个命令具备一些tar命令没有的功能,如下所示:
◆支持cpio和tar两种档案文件格式;
◆支持许多老式磁带数据格式;
◆能够通过一个管道读取文件的文件名。
只有很少的Linux软件包是以cpio格式发行的。如果对cpio命令的详细情况感兴趣的话,可以阅读它的使用手册。
使用gzip压缩文件
gzip命令是用来压缩文件的。它不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。
gzip命令的格式是:
gzip[option][file]
gzip很容易使用。如果想压缩某个文件或者磁带档案文件,可输入下面的内容:
#gzipmydir.tar
在缺省的状态下,gzip会压缩文件、再加上一个.gz扩展名,然后删除掉原来的文件。如果想解压缩文件,可以使用gzip的对应程序命令gunzip或者gzip命令的-d解压缩参数。但是必须保证这个用于解压缩的文件有.gz(或者.Z、-gz、.z、-z、或者_z)扩展名,否则gzip命令和gunzip命令都会显示出错信息。如果想使用自己的扩展名,可以使用-S后缀参数,如下所示:
#gzip-S.gzippedmydir.tar
gzip还可以处理用zip命令、compress命令和pack命令压缩的文件包。如果想在压缩或者解压缩的过程中看到更多的信息,可以使用-l列清单参数看到文件在被压缩或解压缩的时候的文件长度。在前一个例子中,压缩完子目录mydir之后,可以使用gzip命令按照下面的方法得到有关的数据:
#gzip-lmydir.tar.gz
compresseduncompr.ratiouncompressed_name
3122133098.2%mydir.tar
此外,gzip还有一个很有用的参数-t,可以用来测试压缩文件的完整性。如果文件正常,gzip不会给出任何显示。如果想看到OK这两个字母,可以在测试某个文件时使用-tv参数。
使用compress压缩文件
compress命令就像它的文件名那样是用来压缩文件的。这是Unix中出现得比较早的一个压缩程序,它通过使用自适应的Lemple-Ziv编码来缩小所指文件的大小。每一个文件将被一个带有.Z扩展名的压缩文件所代替,但文件的属主关系、访问时间和修改时间将保持不变。如果没有指点文件,则接受标准输入的文件进行压缩并送到标准输出。
compress命令格式是:
compress[option][file]
与compress对应的有一个解压缩命令uncompress,其格式如下:
uncompress[option][file]
它使".Z"的压缩文件恢复。
compress和uncompress命令的选项如下:
◆-c写到标准输出,不改变文件。
◆-f强制压缩,即使文件并不真正减小或.Z文件已经存在,也进行压缩。
◆-v显示每一个被压缩文件的缩小的百分比。
下面举例说明compress命令的用法:
#compressfile
上面代码表明将生成压缩文件file.Z代替file,要解压缩输入:
#uncompressfile.Z
注意,像使用gzip命令一样,使用uncompress命令时必须给出一个带有.Z扩展名的文件名,否则uncompress命令显示出错信息。