artType01.jpg solaris tar命令的使用
2014-03-13 17:29:47
标签: solaris tar 解压到指定的目录

  今天在做solaris中关于tar命令的练习,发现了一个有趣的地方,现在跟大家分享一下~

1、使用tar命令对/etc/rc3.d这个目录进行归档操作,归档文件放到/tmp下,文件名为rc3d.tar。

[root@solaris187:/]# tar cvf /tmp/rc3d.tar /etc/rc3.d

a /etc/rc3.d/ 0K

a /etc/rc3.d/README 2K

a /etc/rc3.d/S50apache 3K

a /etc/rc3.d/S52imq 6K

a /etc/rc3.d/S84appserv 1K

a /etc/rc3.d/S16boot.server 1K

a /etc/rc3.d/S80mipagent 1K

[root@solaris187:/]# ls -l /tmp

-rw-r--r--   1 root     root       16896 Mar 13 15:58 rc3d.tar


2、将文件rc3d.tar展开

[root@solaris187:/]# cd /tmp

[root@solaris187:/tmp]# tar xvf rc3d.tar

x /etc/rc3.d, 0 bytes, 0 tape blocks

x /etc/rc3.d/README, 1285 bytes, 3 tape blocks

x /etc/rc3.d/S50apache, 2452 bytes, 5 tape blocks

x /etc/rc3.d/S52imq, 5840 bytes, 12 tape blocks

x /etc/rc3.d/S84appserv, 824 bytes, 2 tape blocks

x /etc/rc3.d/S16boot.server, 474 bytes, 1 tape blocks

x /etc/rc3.d/S80mipagent, 344 bytes, 1 tape blocks

[root@solaris187:/tmp]# ls -l

-rw-r--r--   1 root     root       16896 Mar 13 15:58 rc3d.tar

这时可以发现解压以后,tmp下面没有一个rc3.d的文件夹,说明解包以后,文件覆盖了原来的文件。那我们能不能把文件解压到我们指定的目录上呢?我man了一下tar命令,发现只有在打包的时候才有可以指定目录,解包的时候无法指定目录。

[root@solaris187:/tmp]# tar xvf rc3d.tar -C /tmp/

tar: 2 file(s) not extracted

提示没有办法解压,又查询了别的资料,在linux平台试了一下,成功了,这个命令可用,但solaris不可用。

那究竟有没有办法把文件解包到当前目录下面呢?大家再看我下面的操作:

[root@solaris187:/]# cd /etc

[root@solaris187:/etc]#tar cvf /tmp/rc3d2.tar rc3.d

a rc3.d/ 0K

a rc3.d/README 2K

a rc3.d/S50apache 3K

a rc3.d/S52imq 6K

a rc3.d/S84appserv 1K

a rc3.d/S16boot.server 1K

a rc3.d/S80mipagent 1K

[root@solaris187:/etc]# cd /tmp

[root@solaris187:/tmp]# ls

dana@11am.send       rc3d.tar             ssh-LpGLg878         ssh-mlqdm874

hsperfdata_noaccess  rc3d2.tar            ssh-OtYYG868         ssh-xMEDD850

hsperfdata_root      ssh-EjkI1002         ssh-ZoyMj854

ogl_select363        ssh-LTPOf858         ssh-bfvh1056

[root@solaris187:/tmp]# tar xvf rc3d2.tar

x rc3.d, 0 bytes, 0 tape blocks

x rc3.d/README, 1285 bytes, 3 tape blocks

x rc3.d/S50apache, 2452 bytes, 5 tape blocks

x rc3.d/S52imq, 5840 bytes, 12 tape blocks

x rc3.d/S84appserv, 824 bytes, 2 tape blocks

x rc3.d/S16boot.server, 474 bytes, 1 tape blocks

x rc3.d/S80mipagent, 344 bytes, 1 tape blocks

[root@solaris187:/tmp]# ls

dana@11am.send       rc3.d              ssh-LTPOf858         ssh-bfvh1056

hsperfdata_noaccess  rc3d.tar             ssh-LpGLg878         ssh-mlqdm874

hsperfdata_root      rc3d2.tar            ssh-OtYYG868         ssh-xMEDD850

ogl_select363        ssh-EjkI1002         ssh-ZoyMj854

不知道大家发现没有,这时我解包的时候就有一个rc3.d的目录了,这是什么原因呢?我对solaris中自带tar命令的总结如下,仅供参考:

1、打包的时候,如果使用的是绝对路径( tar cvf /tmp/rc3d.tar /etc/rc3.d),那么解包的时候就会被自动解包到原来的地方;如果使用的是相对路径( tar cvf /tmp/rc3d.tar rc3.d),那么就可以在把包展开到包存放的位置。

2、solaris系统自带的tar包比较低级,不支持压缩功能,也不支持解包到指定的目录中。

3、关于solaris tar包的高级版本的下载,现在居然要收费了……

        -------转载自美女blog:http://msling.blog.51cto.com