tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
**语法格式:** tar [参数] [文件或目录]
**常用参数:**
| -A | 新增文件到以存在的备份文件 |
| ------------------------ | --------------------------------------------------------------------------------------------------- |
| -B | 设置区块大小 |
| -c | 建立新的备份文件 |
| -C <目录> | 切换工作目录,先进入指定目录再执行压缩/解压缩操作,可用于仅压缩特定目录里的内容或解压缩到特定目录 |
| -d | 记录文件的差别 |
| -x | 从归档文件中提取文件 |
| -t | 列出备份文件的内容 |
| -z | 通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz |
| -Z | 通过compress指令处理备份文件 |
| -f<备份文件> | 指定备份文件 |
| -v | 显示指令执行过程 |
| -r | 添加文件到已经压缩的文件 |
| -u | 添加改变了和现有的文件到已经存在的压缩文件 |
| -j | 通过bzip2指令压缩/解压缩文件,文件名最好为*.tar.bz2 |
| -v | 显示操作过程 |
| -l | 文件系统边界设置 |
| -k | 保留原有文件不覆盖 |
| -m | 保留文件不被覆盖 |
| -w | 确认压缩文件的正确性 |
| -p | 保留原来的文件权限与属性 |
| -P | 使用文件名的绝对路径,不移除文件名称前的“/”号 |
| -N <日期格式> | 只将较指定日期更新的文件保存到备份文件里 |
| -- -exclude=<范本样式> | 排除符合范本样式的文件 |
| -- -remove-files | 归档/压缩之后删除源文件 |
**参考实例**
将所有.jpg的文件打成一个名为all.tar的包:
```
[root@anycode ~]# tar -cf all.tar *.jpg
```
打包文件之后删除源文件:
```
[root@anycode ~]# tar -cvf linuxcool.tar linuxcool --remove-files
```
打包文件以后,以 gzip 压缩:
```
[root@anycode ~]# tar -zcvf log.tar.gz linuxcool.log
```