tar归档实用工具的使用

tar命令可以用来在归档中存储文件、从归档中解压它们和执行其他类型的操作。tar命令的主要参数(常常被称为操作)指定tar的行为,而其他参数(常常被称为选项)用来改变命令执行操作的方式。

tar命令的格式为:tar <operation> [options]。

tar命令常用的三种操作如下:

  • --create或者-c:创建一个新的归档文件;
  • --list或者-t:显示归档文件的内容;
  • --extract或者-x:从一个归档文件中解压一个或者多个成员。

tar命令常用的两种选项如下:

  • --file=archive-name或者-f archive-name:指定一个归档文件的名称,该归档文件就是tar命令在其上执行操作的归档文件;
  • --verbose或者-v:显示tar正操作文件的详细信息。

当读取归档文件时(--list, --extract, --diff),tar默认情况下显示正被解压的成员的名称,使用--verbose选项可以显示一个完全的ls类型的成员列表。相对应地,当tar写入归档文件时(--create, --append, --update),tar默认情况下并不打印文件名,因此单个--verbose选项可以显示正在被添加到归档的文件名称,而两个--verbose选项能够显示出完全的信息列表。

如下所示(假设当前目录下存在用于测试的三个文件file1、file2和file3,将要生成的归档文件名称为archive.tar):

(1)使用tar -cf archive.tar file1 file2 file3命令,确定后生成归档文件archive.tar,但在命令执行过程中并不打印任何信息。

(2)使用tar -cvf archive.tar file1 file2 file3命令,确定后生成归档文件archive.tar,同时在命令执行过程中打印如下信息:

   file1
   file2
   file3

(3)使用tar -cvvf archive.tar file1 file2 file3命令,确定后生成归档文件archive.tar,同时在命令执行过程中打印如下信息:

   -rw-r--r-- root/root        29 2010-01-01 21:44:05 file1
   -rw-r--r-- root/root        29 2010-01-01 21:44:25 file2
   -rw-r--r-- root/root        29 2010-01-01 21:44:38 file3

  • 使用tar创建归档文件

tar基本操作之一就是--create或者-c,你可以使用该操作来创建一个tar归档文件。注意:不要试图使用--create或者-c来向一个已经存在的归档中添加文件,它将删除该归档并且创建一个新的归档文件,而使用-append来实现添加功能。

tar创建归档文件的命令如上所示。你可以通过指定目录名为tar文件名参数来归档整个目录,在解压归档文件时,该目录将连同它的内容一块被创建。

为了归档一个目录,你首先应该跳转到它的上层目录,然后使用类似tar --create --verbose --file=test.tar test_directory的命令归档该目录。具体示例如下:

使用tar -cvf test.tar test_directory命令,并假设test_directory目录下存在file1、file2和file3三个文件。其输出结果如下:

  test_directory/
  test_directory/file2
  test_directory/file1
  test_directory/file3

  • 如何显示归档文件的内容

你可以使用--list或者-t操作来获得当前归档文件中的成员名称,连同他们被归档时的多种文档属性。具体示例如下:

(1)tar -tf archive.tar

     file1
     file2
     file3

(2)tar -tvf archive.tar

     -rw-r--r-- root/root        29 2010-01-01 21:44:05 file1
     -rw-r--r-- root/root        29 2010-01-01 21:44:25 file2
     -rw-r--r-- root/root        29 2010-01-01 21:44:38 file3

(3)同样你可以显示归档中指定文件的信息:tar -tvf archive.tar file2,其输出结果如下:

     -rw-r--r-- root/root        29 2010-01-01 21:44:25 file2

  • 如何从归档中解压文件

为了从一个归档中解压文件,可以使用--extract或者-x选项。同-create一样,你可以使用--file选项来指定归档的名称。解压一个归档并不修改该归档本身。
为了解压指定的归档成员,可以将他们的名称作为tar命令的参数。从归档文件中解压一个目录与解压一个其他文件类似,最大的不同在于如果被解压的目录同当前工作目录中的一个己存在的目录名称相同,被解压目录中的文件将被放置在同名的目录中。具体的示例如下:

(1)tar -xvf archive.tar

     file1
     file2
     file3
(2)tar -xvf archive.tar file2

     file2


GNU tar操作

  • 基本GNU tar操作

基本的GNU tar操作包括--create或者-c,--list或者-t和--extract、--get或-t。

  • 高级GNU tar操作

高级的GNU tar操作一般包括以下五种:--append,--update,--concatenate,--delete和--compare等五种。

(1)向已经存在的归档中添加文件
向一个已存在的归档中添加一个文件的最简单的方式是使用--append或者-r,该选项向归档中写入指定的文件,不管该文件在归档文件中是否已经存在。

(2)更新归档中的文件

你可以使用--update或-u操作来更新一个归档文件,在使用--update或-u操作时,你必须指定文件名参数,如果没有指定任何文件,tar将不对任何文件产生作用。

(3)组合归档文件
可以使用--concatenate(--catenate,-A)操作来组合归档文件。为了使用--cocatenate,你应该使用--file选项来指定第一个归档文件,并在命令行中指定其它归档的名称。

(4)比较归档成员和文件系统文件

比较归档成员和文件系统:--compare,-d或者--diff操作比较特定的归档成员和与之同名>的文件,并且报告在文件大小、模式、拥有者、修改日期和内容等方面的差异。在该命令中,tar忽略文件系统中在归档中并不存在相应成员的文件。

  • 创建和读取压缩文档:

GNU tar能够创建和读取压缩文档,它支持gzip,bzip2,lzma和lzop压缩程序,为了保持向后兼容性,它同样支持compress命令。
创建一个压缩的归档文件很简单,你只要在使用常用的创建命令加上特定的压缩选项便可:使用-z(--gzip)选项来创建一个gzip压缩归档文件,-j(--bzip2)选项来创建一个bzip2压缩文档,-J(--xz)来创建一个XZ归档,--lzma来创建一个LZMA压缩归档,--lzop来创建一个LSOP归档,-Z来调用compress压缩程序。具体示例如下:

(1)创建gzip压缩归档

     使用tar -cvzf archive.tar.gz file1 file2 file3命令,输出结果如下:

     file1
     file2
     file3
     并生成archive.tar.gz压缩归档。

(2)创建bzip2压缩归档

     使用tar -cvzf archive.tar.gz file1 file2 file3命令,输出结果如下:

     file1
     file2
     file3

     并生成archive.tar.bz2

(3)解压gzip压缩文档

     使用tar -xvzf archive.tar.gz命令,输出结果如下:

     file1
     file2
     file3

注:常用的后缀名和压缩程序的对应关系如下:
后缀名         压缩程序
.gz             gzip
.tgz            gzip
.taz            gzip
.Z              compress
.taZ            compress
.bz2            bzip2
.tz2            bzip2
.tbz2           bzip2
.tbz            bzip2
.lzma           lzma
.tlz            lzma
.lzo            lzop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值