tar 命令

虽然 zip 命令能够很好地将数据压缩和归档进单个文件,但是目前,Unix 和 Linux 上广泛使用的归档工具是 tar 命令。

tar 命令开始是用来将文件写到磁带设备上归档的,然而它也能把输出写到文件里,这种用法在 Linux 上已经普遍用来归档数据了。 利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

打包和压缩

  • 打包:将一大堆文件或目录变成一个总的文件;

  • 压缩:将一个大的文件通过一些压缩算法变成一个小文件;

为什么要区分打包和压缩呢?这源于 Linux 中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar 命令),然后再用压缩程序进行压缩(gzipbzip2 命令等)。

命令用法

$ tar function [options] object1 object2 ...

function 参数定义了 tar 命令应该做什么,如下表所示:

功能

长名称

描述

-A

--concatenate

将一个已有的 tar 归档文件追加到另一个已有 tar 归档文件

-c

--create

创建一个新的归档文件

-d

--diff

检查归档文件和文件系统的不同之处

-r

--append

追加文件到已有 tar 归档文件末尾

-t

--list

列出已有 tar 归档文件的内容

-u

--update

将比 tar 归档文件中已有的同名文件新的文件追加到该 tar 归档文件中

-x

--extract

从已有 tar 归档文件中提取文件

常用可选参数

参数

说明

-C dir

切换到指定目录

-f file

输出结果到文件或设备 file

-j

将输出重定向给 bzip2 命令来压缩内容

-p

保留所有文件权限

-v

在处理文件时显示文件

-z

在输出重定向给 gzip 命令来压缩内容

使用实例

  1. 创建名为 test.tar 的归档文件,包含 test 和 test2 目录内容

     $ tar -cvf test.tar test/ test2/
  2. 列出 test.tar 的内容(但并不提取文件)

     $ tar -tf test.tar
  3. 提取 test.tar 的内容

     $ tar -xvf test.tar

Last updated