如何让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
我想应该是特殊字符匹配的问题,应该是用转移字符的。
请教应该如何表示这个特殊文件名。 set -o noglob
tar ....
set +o noglob 谢谢楼上的热心回答,不过和我的问题基本没有关系 不就是关闭通配符嘛!
/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:
哎,这个不是shell的问题,是tar的问题,如果把一个包含*的文件打包,然后运行tar tf指定这个文件名,gtar总是报错说找不到包含*的那个文件。
我的问题是用如何的命令行可以让tgz中的文件显示出来
tar tf test.tar.gz test*1
页:
[1]