服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux tar命令使用列子(2)

Linux tar命令使用列子(2)

2020-06-01 21:49linux命令大全 Linux

tar命令在进行操作的时候,就会把正在添加到档案文件中去的子目录和文件的文件名显示出来。使用w参数,即交互参数,这样tar命令在执行的过程当中会

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命令显示出错信息。

延伸 · 阅读

精彩推荐