免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1984 | 回复: 0
打印 上一主题 下一主题

使用“tar”命令抽取某个目录或具体文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-06 00:44 |只看该作者 |倒序浏览
#通过“ls”命令列出当前目录的内容,可以看到用于演示的“webmin-1.330.tar.gz”文件。
[root@ils hdc5]# ls
lost+found  webmin-1.330.tar.gz
#试图用带“t”选项的“tar”命令列出“webmin-1.330.tar.gz”文件所封装的内容。
[root@ils hdc5]# tar -tvf webmin-1.330.tar.gz
#以下四行输出表明tar命令执行失败,因为webmin-1.330.tar.gz是一个由gzip压缩过的文件,由“.gz”后缀可以得知。
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: Error exit delayed from previous errors
#为演示方便,首先通过不带任何选项和参数的“gunzip”命令将“webmin-1.330.tar.gz”文件解压缩。
[root@ils hdc5]# gunzip webmin-1.330.tar.gz
#再查看当前目录的内容,可以看到“webmin-1.330.tar.gz”文件的“.gz”后缀消失了。
[root@ils hdc5]# ls
lost+found  webmin-1.330.tar
#当然可以通过带“zxvf”选项的“tar”命令直接将“webmin-1.330.tar.gz”文件解压并且释放其所有内容,此时就谈不上“抽取”了。
#下面以被“tar”命令封装(通常被称作“打包”)到“webmin-1.330.tar”文件的“webmin-1.330/”目录以及“webmin-1.330/config.cgi”文件为例演示如何抽取“tar”文件中的某个目录或具体文件。
#首先通过带“t”选项的“tar”命令列出“webmin-1.330.tar”文件所封装的内容。
#“v”(verbose)选项用于详述命令执行过程。
[root@ils hdc5]# tar -tvf webmin-1.330.tar | more
#可以看到被“tar”命令封装到“webmin-1.330.tar”文件的所有(部分)内容,以上命令通过管道(“|”符号)将“tar”命令的输出(执行结果)重定向到“more”命令以分屏显示命令执行结果。
#命令执行结果可以看出“t”选项是以递归的方式来列出“webmin-1.330.tar”文件所封装的内容的。
#为演示方便,以下面第一行的“webmin-1.330/”目录和第二行的“webmin-1.330/config.cgi”文件为例。
drwxr-xr-x jcameron/wheel    0 2007-02-27 14:51:13 webmin-1.330/
-rwxr-xr-x jcameron/wheel 1332 2007-02-27 14:50:46 webmin-1.330/config.cgi
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-cobalt-linux
-rw-rw-r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-coherent-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-corel-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-debian-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-generic-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-gentoo-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-mandrake-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-msc-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-open-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-redhat-linux
-rw-r--r-- jcameron/wheel  262 2007-02-27 14:50:46 webmin-1.330/config-slackware-linux
-rw-rw-r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-sol-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-suse-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-trustix-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-turbo-linux
-rw-r--r-- jcameron/wheel  246 2007-02-27 14:50:46 webmin-1.330/config-united-linux
-rw-r--r-- jcameron/wheel  370 2007-02-27 14:50:46 webmin-1.330/config-solaris
drwxr-xr-x jcameron/wheel    0 2007-02-27 14:51:13 webmin-1.330/images/
-rw-r--r-- jcameron/wheel  135 2007-02-27 14:50:46 webmin-1.330/images/right.gif
drwxr-xr-x jcameron/wheel    0 2007-02-27 14:50:46 webmin-1.330/images/letters/
-rw-r--r-- jcameron/wheel  153 2007-02-27 14:50:46 webmin-1.330/images/letters/237.gif
-rw-r--r-- jcameron/wheel  358 2007-02-27 14:50:46 webmin-1.330/images/letters/193.gif
-rw-r--r-- jcameron/wheel  170 2007-02-27 14:50:46 webmin-1.330/images/letters/239.gif
-rw-r--r-- jcameron/wheel  365 2007-02-27 14:50:46 webmin-1.330/images/letters/195.gif
-rw-r--r-- jcameron/wheel  379 2007-02-27 14:50:46 webmin-1.330/images/letters/197.gif
-rw-r--r-- jcameron/wheel  305 2007-02-27 14:50:46 webmin-1.330/images/letters/177.iso-8859-2.gif
-rw-r--r-- jcameron/wheel  353 2007-02-27 14:50:46 webmin-1.330/images/letters/199.gif
-rw-r--r-- jcameron/wheel  270 2007-02-27 14:50:46 webmin-1.330/images/letters/50.gif
-rw-r--r-- jcameron/wheel  261 2007-02-27 14:50:46 webmin-1.330/images/letters/52.gif
-rw-r--r-- jcameron/wheel  313 2007-02-27 14:50:46 webmin-1.330/images/letters/54.gif
-rw-r--r-- jcameron/wheel  168 2007-02-27 14:50:46 webmin-1.330/images/letters/91.gif
-rw-r--r-- jcameron/wheel  310 2007-02-27 14:50:46 webmin-1.330/images/letters/56.gif
-rw-r--r-- jcameron/wheel  168 2007-02-27 14:50:46 webmin-1.330/images/letters/93.gif
-rw-r--r-- jcameron/wheel  116 2007-02-27 14:50:46 webmin-1.330/images/letters/58.gif
-rw-r--r-- jcameron/wheel  120 2007-02-27 14:50:46 webmin-1.330/images/letters/95.gif
-rw-r--r-- jcameron/wheel  280 2007-02-27 14:50:46 webmin-1.330/images/letters/97.gif
--More—
#为节省篇幅以上只保留了第一屏命令执行结果。
#以下带“x”选项的“tar”命令抽取“webmin-1.330.tar”文件中封装的“webmin-1.330/”目录下的“config.cgi”文件。
[root@ils hdc5]# tar -xvf webmin-1.330.tar webmin-1.330/config.cgi
#以下一行是“tar”命令的选项“v”(verbose)的作用——详述命令执行过程。
webmin-1.330/config.cgi
#再通过“ls”命令列出当前目录的内容,可以看到“webmin-1.330”文件(目录)被创建。
#也可以通过带“l”选项的“ls”命令列出当前目录的内容,以及分辨出哪个文件是目录文件。
[root@ils hdc5]# ls
lost+found  webmin-1.330  webmin-1.330.tar
#改变当前目录到刚刚被创建的“webmin-1.330”目录。
[root@ils hdc5]# cd webmin-1.330
#列出“webmin-1.330”目录的内容,可以看到被抽取的“config.cgi”文件。
#此时可以发现被抽取的“config.cgi”文件的相对路径保持不变,仍然在“webmin-1.330/”目录下。
#因此可以得知单独抽取文件的操作不改变被抽取的文件在被“tar”命令封装以前的相对路径,其所在目录及所有上级目录将首先被创建。
[root@ils webmin-1.330]# ls
config.cgi
#改变当前目录到上级目录。
[root@ils webmin-1.330]# cd ..
#为方便演示,递归强制(“rf”选项)删除“webmin-1.330”目录——强制删除该目录及其所有内容。
[root@ils hdc5]# rm -rf webmin-1.330
#抽取“webmin-1.330.tar”文件中封装的“webmin-1.330/”目录及其所有内容。
[root@ils hdc5]# tar -xvf webmin-1.330.tar webmin-1.330 | more
webmin-1.330/
webmin-1.330/config.cgi
webmin-1.330/config-cobalt-linux
webmin-1.330/config-coherent-linux
webmin-1.330/config-corel-linux
webmin-1.330/config-debian-linux
webmin-1.330/config-generic-linux
webmin-1.330/config-gentoo-linux
webmin-1.330/config-mandrake-linux
webmin-1.330/config-msc-linux
webmin-1.330/config-open-linux
webmin-1.330/config-redhat-linux
webmin-1.330/config-slackware-linux
webmin-1.330/config-sol-linux
webmin-1.330/config-suse-linux
webmin-1.330/config-trustix-linux
webmin-1.330/config-turbo-linux
webmin-1.330/config-united-linux
webmin-1.330/config-solaris
webmin-1.330/images/
webmin-1.330/images/right.gif
webmin-1.330/images/letters/
webmin-1.330/images/letters/237.gif
webmin-1.330/images/letters/193.gif
webmin-1.330/images/letters/239.gif
webmin-1.330/images/letters/195.gif
webmin-1.330/images/letters/197.gif
webmin-1.330/images/letters/177.iso-8859-2.gif
webmin-1.330/images/letters/199.gif
webmin-1.330/images/letters/50.gif
webmin-1.330/images/letters/52.gif
webmin-1.330/images/letters/54.gif
webmin-1.330/images/letters/91.gif
webmin-1.330/images/letters/56.gif
webmin-1.330/images/letters/93.gif
webmin-1.330/images/letters/58.gif
webmin-1.330/images/letters/95.gif
webmin-1.330/images/letters/97.gif
--More—
[root@ils hdc5]# ls
lost+found  webmin-1.330  webmin-1.330.tar
#改变当前目录到刚刚被创建的“webmin-1.330”目录。
[root@ils hdc5]# cd webmin-1.330
#可以看到“webmin-1.330”目录下的所有内容被抽取出来——递归抽取,包括子目录,而不仅仅是“config.cgi”文件。
#可以通过带“al”选项的“ls”命令列出所有内容,以及分辨出哪个文件是目录文件,再改变当前目录到“images”子目录,验证递归抽取的结果。
[root@ils webmin-1.330]# ls
config.cgi             config-corel-linux    config-gentoo-linux    config-open-linux       config-solaris     config-trustix-linux  images
config-cobalt-linux    config-debian-linux   config-mandrake-linux  config-redhat-linux     config-sol-linux   config-turbo-linux
config-coherent-linux  config-generic-linux  config-msc-linux       config-slackware-linux  config-suse-linux  config-united-linux


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/74872/showart_1361878.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP