您的位置:首页 > 其它

15+ 个 tar 命令的用法,附示例

2014-03-11 13:06 232 查看
转自:http://www.oschina.net/question/12_146379

tar 命令用来将很多文件打包成一个单一的磁带或者磁盘归档,并可从归档文件恢复出文件列表。当你需要通过 email 发送大量文件时或者传输文件时非常有用。这里我们介绍一些基本的使用场景。

tar 的语法:

1
#
tar [options] file.tar file1 file2 .. .. ..
file.tar 是 tar 归档文件,而其他 file1 和 file2 等等是要被打包的文件。

例如我们有两个文件 file1.txt 和 file2.txt

1
[root@localhost
TAR]
#
ll
2
total
8
3
-rw-r--r--.
1 root root 2770 Feb  7 22:37 file1.txt
4
-rw-r--r--.
1 root root  887 Feb  7 22:38 file2.txt
tar 常用的使用场景

创建一个 tar 文件

语法:

1
#
tar -cf archive.tar files .. ..
示例:

1
[root@localhost
TAR]
#
tar -cf file.tar file1.txt file2.txt
2
[root@localhost
TAR]
#
ll file.tar
3
-rw-r--r--.
1 root root 10240 Feb  7 22:42
file
.
tar
列出 tar 文件中的所有文件列表

1
#
tar -tf archive.tar
示例:

1
[root@localhost
TAR]
#
tar -tf file.tar
2
file1.txt
3
file2.txt
从 tar 中提取所有文件

1
tar
-xf
archive.
tar
示例

1
[root@localhost
TAR]
#
tar -xf file.tar
2
[root@localhost
TAR]
#
ll
3
total
20
4
-rw-r--r--.
1 root root  2770 Feb  7 22:37 file1.txt
5
-rw-r--r--.
1 root root   887 Feb  7 22:38 file2.txt
6
-rw-r--r--.
1 root root 10240 Feb  7 22:42
file
.
tar
参数选项

1, -v, –verbose

verbosely list files processed:

Syntax:

List all files in an archive.tar verbosely:

1
tar
-tvf
archive.
tar
Example:

1
[root@localhost
TAR]
#
tar -tvf file.tar
2
-rw-r--r--
root/root      2770 2014-02-07 22:37 file1.txt
3
-rw-r--r--
root/root       887 2014-02-07 22:38 file2.txt
2, -c, –create

创建新的归档文件

3, -t, –list

列出归档文件中的内容

4, -x, –extract, –get

从归档中提取文件

5, -d, –diff, –compare

比较归档和文件系统的差异

Example:

01
[root@localhost
TAR]
#
tar -tf file.tar
02
file2.txt
03
file3.txt
04
file1.txt
05
[root@localhost
TAR]
#
tar -df file.tar file1.txt file2.txt file4.txt
06
tar
:
file4.txt: Not found
in
archive
07
tar
:
Exiting with failure status due to previous errors
08
----Verbosely----
09
[root@localhost
TAR]
#
tar -dvf file.tar file1.txt file2.txt
10
file2.txt
11
file1.txt
12
[root@localhost
TAR]
#
tar -dvf file.tar file1.txt file2.txt file6.txt
13
file2.txt
14
file1.txt
15
tar
:
file6.txt: Not found
in
archive
16
tar
:
Exiting with failure status due to previous errors
6, –delete

从归档中删除某文件

示例:

从归档 file.tar 中删除 file1.txt

1
[root@localhost
TAR]
#
tar --delete -f  file.tar  file1.txt
2
[root@localhost
TAR]
#
tar -tf file.tar
3
file2.txt
7, -r, –append

追加文件到归档中

示例:

追加 file3.txt 到 file.tar

1
[root@localhost
TAR]
#
tar -rf file.tar file3.txt
2
[root@localhost
TAR]
#
tar -tf file.tar
3
file1.txt
4
file2.txt
5
file3.txt
8, -A, –catenate, –concatenate

将一个tar 归档追加到另外一个归档文件中

创建另外一个 tar 文件

1
[root@localhost
TAR]
#
tar -cf archive.tar file1.txt file3.txt
追加方法:

1
[root@localhost
TAR]
#
tar -Af file.tar archive.tar
2
[root@localhost
TAR]
#
tar -tf file.tar
3
file2.txt
4
file3.txt
5
file1.txt
6
file1.txt
7
file3.txt
9, –test-label

测试归档卷标并退出

10, -u, –update

只追加最新的文件

示例:

1
[root@localhost
TAR]
#
tar -tf file.tar
2
file1.txt
3
file2.txt
4
[root@localhost
TAR]
#
tar -uf file.tar file1.txt file3.txt file2.txt
5
[root@localhost
TAR]
#
tar -tf file.tar
6
file1.txt
7
file2.txt
8
file3.txt
11, -C, –directory=DIR

更改目录到 DIR

例如:

提取文件到另外一个目录

1
[root@localhost
TAR]
#
tar -xvf file.tar -C /root/TAR2
2
file1.txt
3
file2.txt
4
[root@localhost
TAR]
#
cd -
5
/root/TAR2
6
[root@localhost
TAR2]
#
ll
7
total
28
8
-rw-r--r--.
1 root root 23250 Feb  7 23:11 file1.txt
9
-rw-r--r--.
1 root root   887 Feb  7 22:38 file2.txt
12, -p, –preserve-permissions

抽取文件时保留原有的文件权限

压缩归档文件,使用 BZIP 和 GZIP 两种方法

跟压缩相关的参数

13, -j, –bzip2

使用 bzip2 对归档进行压缩

示例:

1
[root@localhost
TAR]
#
tar -jcf file.tar.bz file2.txt file1.txt
2
[root@localhost
TAR]
#
ll
3
total
128
4
-rw-r--r--.
1 root root 23250 Feb  7 23:11 file1.txt
5
-rw-r--r--.
1 root root   887 Feb  7 22:38 file2.txt
6
-rw-r--r--.
1 root root 30720 Feb  7 23:30
file
.
tar
7
-rw-r--r--.
1 root root  1797 Feb  7 23:42
file
.
tar
.bz
请看,上面的文件大小通过 BZIP 降低到 1797 字节。

14, -z, –gzip

使用 gzip 压缩归档

示例:

1
[root@localhost
TAR]
#
tar -zcf file.tar.gz file2.txt file1.txt
2
[root@localhost
TAR]
#
ll
3
total
132
4
-rw-r--r--.
1 root root 23250 Feb  7 23:11 file1.txt
5
-rw-r--r--.
1 root root   887 Feb  7 22:38 file2.txt
6
-rw-r--r--.
1 root root 30720 Feb  7 23:30
file
.
tar
7
-rw-r--r--.
1 root root  1797 Feb  7 23:42
file
.
tar
.bz
8
-rw-r--r--.
1 root root  1673 Feb  7 23:45
file
.
tar
.gz
就这些了!



红薯

发帖于 2天前

17回/2740阅
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: