2013-05-03 45 views
0

我使用一个shell脚本,找出使用bash脚本包含一个类文件的JAR文件在UNIX列表文件暧昧重定向错误渐渐的错误是:获得的/ dev/null的:</p> <pre><code>find . -name "*.jar" -exec bash -c 'jar -tf {} |grep -H --label {} GenericClassLoader' ; </code></pre> <p>但我:在UNIX

java.util.zip.ZipException: error in opening zip file 
     at java.util.zip.ZipFile.open(Native Method) 
     at java.util.zip.ZipFile.<init>(ZipFile.java:131) 
     at java.util.zip.ZipFile.<init>(ZipFile.java:92) 
     at sun.tools.jar.Main.list(Main.java:997) 
     at sun.tools.jar.Main.run(Main.java:242) 
     at sun.tools.jar.Main.main(Main.java:1167) 

我以帮助,从这个帖子:Find for a class file in Linux that is present in JAR

为了避免错误我已经修改我的查询为:

find . -name "*.jar" -exec bash -c 'jar -tf {} 2>&/dev/null |grep -H --label {} GenericClassLoader' \; 

但我开始下面的错误:

bash: /dev/null: ambiguous redirect

请帮我解决这个问题,什么是我的命令的问题。

回答

2

这是因为你写的重定向,你应该重定向2> /dev/null发送stderr/dev/null(假设这是你想要的)。

另外请注意,您没有修复错误,您只是阻止它可见。

详情请看:http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

+0

非常感谢阿尔贝托 – chaitanya 2013-05-03 17:00:46

+0

不客气! – 2013-05-03 17:02:06

相关问题