tar命令式unix系统中比较常用的命令之一,它可以将一大堆文件打包成一个后缀为.tar的文件,当然也可以将它解开。下面简单介绍一下它在Solaris中常用的几个命令:
1)生成一个tar文件
$ tar cvf exception_lists.tar exception_lists
a exception_lists/ 0K
a exception_lists/interface_check 3K
a exception_lists/packaging 6K
a exception_lists/keywords 2K
a exception_lists/permchk 1K
a exception_lists/check_rtime 10K
a exception_lists/cddlchk 1K
a exception_lists/parfait_exception_list 1K
a exception_lists/jsstyle 2K
a exception_lists/mapfilechk 1K
a exception_lists/packaging.closed 1K
a exception_lists/copyright 40K
a exception_lists/packaging.open 2K
a exception_lists/pmodes 2K
a exception_lists/interface_cmp 12K
a exception_lists/hdrchk 2K
a exception_lists/cstyle 11K
option 解释:
[ c ] 即create:创建一个tar文件。
[ v ] 即verbose:输出命令执行的详细过程。
[ f ] 即file:指定要要创建的tar文件的名字。
2)解开一个tar文件
$ tar xvf exception_lists.tar
x exception_lists, 0 bytes, 0 tape blocks
x exception_lists/interface_check, 2329 bytes, 5 tape blocks
x exception_lists/packaging, 5178 bytes, 11 tape blocks
x exception_lists/keywords, 1657 bytes, 4 tape blocks
x exception_lists/permchk, 934 bytes, 2 tape blocks
x exception_lists/check_rtime, 9534 bytes, 19 tape blocks
x exception_lists/cddlchk, 285 bytes, 1 tape blocks
x exception_lists/parfait_exception_list, 248 bytes, 1 tape blocks
x exception_lists/jsstyle, 1176 bytes, 3 tape blocks
x exception_lists/mapfilechk, 831 bytes, 2 tape blocks
x exception_lists/packaging.closed, 225 bytes, 1 tape blocks
x exception_lists/copyright, 40037 bytes, 79 tape blocks
x exception_lists/packaging.open, 2038 bytes, 4 tape blocks
x exception_lists/pmodes, 1101 bytes, 3 tape blocks
x exception_lists/interface_cmp, 12072 bytes, 24 tape blocks
x exception_lists/hdrchk, 1476 bytes, 3 tape blocks
x exception_lists/cstyle, 10615 bytes, 21 tape blocks
option解释:
[ x ],即extract:从tar文件中解出一个或所有文件
另外,我们经常还会想在不解开一个tar文件的前提下知道它里面包含了哪些文件。
3)产看一个tar包的内容
$ tar tvf exception_lists.tar
drwxr-xr-x 245329/10 0 Aug 22 16:54 2014 exception_lists/
-rw-r--r-- 245329/10 2329 Aug 22 16:54 2014 exception_lists/interface_check
-rw-r--r-- 245329/10 5178 Aug 22 16:54 2014 exception_lists/packaging
-rw-r--r-- 245329/10 1657 Aug 22 16:54 2014 exception_lists/keywords
-rw-r--r-- 245329/10 934 Aug 22 16:54 2014 exception_lists/permchk
-rw-r--r-- 245329/10 9534 Aug 22 16:54 2014 exception_lists/check_rtime
-rw-r--r-- 245329/10 285 Aug 22 16:54 2014 exception_lists/cddlchk
-rw-r--r-- 245329/10 248 Aug 22 16:54 2014 exception_lists/parfait_exception_list
-rw-r--r-- 245329/10 1176 Aug 22 16:54 2014 exception_lists/jsstyle
-rw-r--r-- 245329/10 831 Aug 22 16:54 2014 exception_lists/mapfilechk
-rw-r--r-- 245329/10 225 Aug 22 16:54 2014 exception_lists/packaging.closed
-rw-r--r-- 245329/10 40037 Aug 22 16:54 2014 exception_lists/copyright
-rw-r--r-- 245329/10 2038 Aug 22 16:54 2014 exception_lists/packaging.open
-rw-r--r-- 245329/10 1101 Aug 22 16:54 2014 exception_lists/pmodes
-rw-r--r-- 245329/10 12072 Aug 22 16:54 2014 exception_lists/interface_cmp
-rw-r--r-- 245329/10 1476 Aug 22 16:54 2014 exception_lists/hdrchk
-rw-r--r-- 245329/10 10615 Aug 22 16:54 2014 exception_lists/cstyle
这里的[ t ] 即table of contents, 就是用来显示tar包内容的。
4)如何生成一个文件为相对路径的tar包
# ls -la usr/src/
total 12
drwxr-xr-x 2 root root 5 Aug 24 21:07 .
drwxr-xr-x 3 root root 3 Aug 24 21:06 ..
-rw-r--r-- 1 root root 2 Aug 24 21:05 a
-rw-r--r-- 1 root root 2 Aug 24 21:05 b
-rw-r--r-- 1 root root 2 Aug 24 21:06 c
# find . -type f -print |grep src > tar_file.list
# cat tar_file.list
./usr/src/c
./usr/src/a
./usr/src/b
# tar cvf test.tar -I tar_file.list
a ./usr/src/c 1K
a ./usr/src/a 1K
a ./usr/src/b 1K
# tar tvf test.tar
tar: blocksize = 8
-rw-r--r-- 0/0 2 Aug 24 21:06 2014 ./usr/src/c
-rw-r--r-- 0/0 2 Aug 24 21:05 2014 ./usr/src/a
-rw-r--r-- 0/0 2 Aug 24 21:05 2014 ./usr/src/b