QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1090|回复: 4

如何让tar ztvf正常显示包含特殊字符的文件

[复制链接]
发表于 2005-1-28 09:51:25 | 显示全部楼层 |阅读模式
比如说我有一个如下的tgz包。

[root@ var]# tar ztvf /home/package.tar.gz
drwxr-xr-x root/root         0 2005-01-27 11:41:09 package/
-rw-r--r-- root/root   7867561 2005-01-27 07:45:58 package/"'*\\.tar.gz
-rw-r--r-- root/root   7867561 2005-01-27 07:47:09 package/"'*\\1.tar.gz
-rw-r--r-- root/root   7867561 2005-01-27 07:47:11 package/"'*\\2.tar.gz
-rw-r--r-- root/root   7867561 2005-01-27 07:47:13 package/"'*\\3.tar.gz
-rw-r--r-- root/root   3145728 2005-01-27 07:59:06 package/xaa
-rw-r--r-- root/root   3145728 2005-01-27 07:59:06 package/xab
-rw-r--r-- root/root   1576105 2005-01-27 07:59:06 package/xac
-rw-r--r-- root/root   7867561 2005-01-27 11:26:59 package/"*\\.tar.gz
-rw-r--r-- root/root   7867561 2005-01-27 11:27:03 package/'*\\.tar.gz
-rw-r--r-- root/root   7867561 2005-01-27 11:40:58 package/'*\\1.tar.gz
-rw-r--r-- root/root   7867561 2005-01-27 11:41:02 package/'*\\2.tar.gz
-rw-r--r-- root/root   7867561 2005-01-27 11:41:05 package/'*\\3.tar.gz
-rw-r--r-- root/root   7867561 2005-01-27 11:41:09 package/'*4\\.tar.gz

如果只想显示一个文件的情报的话,

[root@var]# tar ztvf /home/package.tar.gz package/xaa
-rw-r--r-- root/root   3145728 2005-01-27 07:59:06 package/xaa
可以正常工作

但是如果想显示特殊字符的文件的情况,就会报错
[root@var]# tar ztvf /home/package.tar.gz package/\'*4\\.tar.gz
tar: package/'*4\\.tar.gz: Not found in archive
tar: Error exit delayed from previous errors

我想应该是特殊字符匹配的问题,应该是用转移字符的。
请教应该如何表示这个特殊文件名。
发表于 2005-1-28 12:27:00 | 显示全部楼层
set -o noglob
tar ....
set +o noglob
回复

使用道具 举报

 楼主| 发表于 2005-1-29 19:55:51 | 显示全部楼层
谢谢楼上的热心回答,不过和我的问题基本没有关系
回复

使用道具 举报

发表于 2005-1-29 20:06:10 | 显示全部楼层
不就是关闭通配符嘛!
[code:1]
/home/lee/test#ls *
?  *  file.tar.bz2  song  url

a:
/home/lee/test#set -o noglob
/home/lee/test#ls *
*
/home/lee/test#set +o noglob
/home/lee/test#ls *
?  *  file.tar.bz2  song  url

a:
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2005-1-31 14:38:37 | 显示全部楼层
哎,这个不是shell的问题,是tar的问题,如果把一个包含*的文件打包,然后运行tar tf指定这个文件名,gtar总是报错说找不到包含*的那个文件。

我的问题是用如何的命令行可以让tgz中的文件显示出来

tar tf test.tar.gz test*1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 11:55 , Processed in 0.045991 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表