tar

用来打包和备份文件

字义

tape archive

特别说明

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

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

在使用 tar 命令指定选项时可以不在选项前面输入 “-”。例如,cvf-cvf起到一样的作用。

说明

tar 命令可以为 linux 的文件和目录创建档案。利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

用法

tar [参数] 对象

对象

文件或目录:指定要打包的文件或目录列表。

参数

-A或--catenate #新增文件到以存在的备份文件
-B #设置区块大小
-c或--create #建立新的备份文件
-C <目录> #这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d #记录文件的差别
-x或--extract或--get #从备份文件中还原文件
-t或--list #列出备份文件的内容
-z或--gzip或--ungzip #通过gzip指令处理备份文件
-Z或--compress或--uncompress #通过compress指令处理备份文件
-f<备份文件>或--file=<备份文件> #指定备份文件
-v或--verbose #显示指令执行过程
-r #添加文件到已经压缩的文件
-u #添加改变了和现有的文件到已经存在的压缩文件
-j #支持bzip2解压文件
-v #显示操作过程
-l #文件系统边界设置
-k #保留原有文件不覆盖
-m #保留文件不被覆盖
-w #确认压缩文件的正确性
-p或--same-permissions #用原来的文件权限还原文件
-P或--absolute-names #文件名使用绝对名称,不移除文件名称前的“/”号
-N <日期格式> 或 --newer=<日期时间> #只将较指定日期更新的文件保存到备份文件里
--exclude=<范本样式> #排除符合范本样式的文件

相关命令

软件包

tar 命令详解和基本用法,tar 命令语法及参数解读, tar 命令使用方法及实例演示。

实例

  1. 将 /root/abc 目录压缩成 /root/abc.tar.gz 文件

    tar zcvf /root/abc.tar.gz /root/abc

     

  2. 将压缩文件 /root/abc.tar.gz 解压缩出来

    tar zxvf /root/abc.tar.gz

    如不指定解压后的目录,默认解压到 /root 目录下。

  3. 将压缩文件 /root/abc.tar.gz 解压缩到 /root/www 目录内

    tar zxvf /root/abc.tar.gz -C /root/www

     

  4. 将 /root/abc 目录压缩成 /root/abc.tar.gz 文件,排除 /root/abc/1 和 /root/abc/2 两个目录

    将设当前目录为/root

    tar zcvf abc.tar.gz --exclude=/abc/1 --exclude=/abc/2 abc

    特别强调:在我们使用 tar 命令的 --exclude 命令排除打包的时候,不能加“/”。

    还是上面那个例子,下面的做法是错误

    tar zcvf abc.tar.gz --exclude=/abc/1/ --exclude=/abc/2/ abc

     

  5. 查看压缩文件 /root/abc.tar.gz 的内容

    tar ztvf /root/abc.tar.gz