nelson_wang 发表于 2005-1-28 09:51:25

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

比如说我有一个如下的tgz包。

# 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

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

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

但是如果想显示特殊字符的文件的情况,就会报错
# 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

我想应该是特殊字符匹配的问题,应该是用转移字符的。
请教应该如何表示这个特殊文件名。

kornlee 发表于 2005-1-28 12:27:00

set -o noglob
tar ....
set +o noglob

nelson_wang 发表于 2005-1-29 19:55:51

谢谢楼上的热心回答,不过和我的问题基本没有关系

kornlee 发表于 2005-1-29 20:06:10

不就是关闭通配符嘛!

/home/lee/test#ls *
?*file.tar.bz2songurl

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

a:

nelson_wang 发表于 2005-1-31 14:38:37

哎,这个不是shell的问题,是tar的问题,如果把一个包含*的文件打包,然后运行tar tf指定这个文件名,gtar总是报错说找不到包含*的那个文件。

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

tar tf test.tar.gz test*1
页: [1]
查看完整版本: 如何让tar ztvf正常显示包含特殊字符的文件