这是 tar 常用命令的快速参考备忘单。
入门
介绍
在Linux平台上,tar
命令是主要的归档实用程序。了解各种 tar
命令选项将帮助您掌握归档文件操作。tar
代表磁带存档。
语法
1
| tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-C <目的目录>][-f <备份文件>][--delete][--totals][文件或目录...]
|
以前 unix 系统管理员使用 tar
执行磁带机备份。tar
命令用于获取文件和目录的集合,并生成高度压缩的归档文件,在Linux中通常称为 tarball
或 tar
、gzip
和 bzip
。
选项
:- |
- |
-c |
建立新的备份文件 |
-C |
切换到指定的目录 |
-d |
对比备份文件内和文件系统上的文件的差异 |
-x |
解压缩归档文件 |
-v |
显示指令执行过程 |
-f |
指定归档文件的文件名 |
-t |
查看归档文件内容 |
-j |
通过 bzip2 指令处理备份文件 |
-z |
通过 gzip 指令处理备份文件 |
-r |
向现有存档文件追加或更新文件或目录 |
-W |
验证归档文件 |
--totals |
备份文件建立后,列出文件大小 |
--delete |
从备份文件中删除指定的文件 |
--wildcards |
在 unix tar 命令中指定匹配模式 |
创建一个 tar 格式的压缩文件
在当前工作目录的 /home/cyberpunk/testdir
目录下创建一个名为 archive.tar
的 tar
归档文件:
1 2 3 4 5 6
| tar -cvf archive.tar /home/cyberpunk/testdir/
/home/cyberpunk/testdir/ /home/cyberpunk/testdir/file1.txt /home/cyberpunk/testdir/file2.sh /home/cyberpunk/testdir/file3.tar
|
本例中使用的选项有:
:- |
- |
-c |
建立新的备份文件 |
-v |
显示指令执行过程 |
-f |
指定归档文件的文件名 |
创建压缩后的 tar.gz
存档文件
要创建一个压缩的 gzip
归档文件,我们需要使用选项 z
。
1 2 3 4 5 6
| tar cvzf compressedArchive.tar.gz /home/cyberpunk/testdir
/home/cyberpunk/testdir/ /home/cyberpunk/testdir/file1.txt /home/cyberpunk/testdir/file2.jpg /home/cyberpunk/testdir/file3.png
|
本例中使用的选项有:
:- |
- |
-c |
建立新的备份文件 |
-v |
显示指令执行过程 |
-f |
指定归档文件的文件名 |
-z |
通过 gzip 指令处理备份文件 |
生成压缩率更高的 tar.bz2
文件
tar
的 bz2
压缩,可以创建比 gzip
文件小的归档。Bz2
模式执行归档压缩和解压所需的时间比 gzip
模式多。通常,这个时间差可以忽略不计,但如果文件非常大,或者是文件数量非常多,那么时间差就会非常大。
1 2 3 4 5 6
| tar cvfj Archive.tar.bz2 /home/cyberpunk/testdir
/home/cyberpunk/testdir/ /home/cyberpunk/testdir/file1.txt /home/cyberpunk/testdir/file2.txt /home/cyberpunk/testdir/file3.txt
|
本例中使用的选项有:
:- |
- |
-c |
建立新的备份文件 |
-v |
显示指令执行过程 |
-f |
指定归档文件的文件名 |
-j |
通过 bzip2 指令处理备份文件 |
解压缩 tar 文件
要解压缩(提取)一个tar文件,将 x
(提取)选项传递给该命令
使用不带 -C
选项的命令将在当前工作目录中提取存档。-C
选项告诉命令在哪里提取存档文件。
1 2 3 4 5 6
| tar -xvf Archive.tar -C /home/cyberpunk/testdir/
/home/cyberpunk/testdir/ /home/cyberpunk/testdir/file1.txt /home/cyberpunk/testdir/file2.txt /home/cyberpunk/testdir/file3.txt
|
本例中使用的选项有:
:- |
- |
-x |
解压缩归档文件 |
-v |
显示指令执行过程 |
-f |
指定归档文件的文件名 |
解压缩 tar.gz 文件
小知识:使用 tar
命令创建的所有归档文件,都可以以相同的方式提取。
1 2 3 4 5 6
| tar -xvf Archive.tar.gz
/home/cyberpunk/testdir/ /home/cyberpunk/testdir/file1.txt /home/cyberpunk/testdir/file2.txt /home/cyberpunk/testdir/file3.txt
|
本例中使用的选项有:
:- |
- |
-x |
解压缩归档文件 |
-v |
显示指令执行过程 |
-f |
指定归档文件的文件名 |
解压缩 tar.bz2 文件
小知识:使用 tar
命令创建的所有归档文件,都可以以相同的方式提取。
1 2 3 4 5 6
| tar -xvf Archive.tar.bz2
/home/cyberpunk/testdir/ /home/cyberpunk/testdir/file1.txt /home/cyberpunk/testdir/file2.txt /home/cyberpunk/testdir/file3.txt
|
本例中使用的选项有:
:- |
- |
-x |
解压缩归档文件 |
-v |
显示指令执行过程 |
-f |
指定归档文件的文件名 |
列出归档内容
使用 t
选项列出 tar
归档文件的内容:
1 2 3 4 5 6
| # tar -tvf uploadprogress.tar
-rwxr--r-- root/root 1111 2014-10-19 12:33:42 file1.txt -rwxr--r-- root/root 1111 2014-10-19 12:33:42 file2.txt -rwxr--r-- root/root 1111 2014-10-19 12:33:42 file3.txt -rwxr--r-- root/root 1111 2014-10-19 12:33:42 file4.txt
|
本例中使用的选项有:
:- |
- |
-t |
查看归档文件内容 |
-v |
显示指令执行过程 |
-f |
指定归档文件的文件名 |
从 tar 归档文件中提取单个文件
1 2 3
| tar --extract --file=archive.tar file1.txt
file1.txt
|
从 tar 归档文件中提取多个文件
1
| tar -xvf Archive.tar "file 1" "file 2"
|
使用通配符提取文件组
1 2 3 4 5
| # tar -xvf Archive.tar --wildcards *.txt'
/home/cyberpunk/testdir/file1.txt /home/cyberpunk/testdir/file2.txt /home/cyberpunk/testdir/file3.txt
|
添加文件或目录到 tar 存档中
要向现有的 tar
文件中添加文件或目录,可以使用 r
选项。例如,我们将 xyz.txt
文件和 php
目录添加到现有的 tecmint-14-09-12.tar
归档文件中。
1 2 3
| # tar -rvf Archive.tar xyz.txt or # tar -rvf Archive.tar php
|
另见
Linux Tar Commands Cheatsheet