我正在使用 shell 脚本从 UNIX 中使用 bash 脚本的 JAR 文件列表中找出包含类文件的文件:
find . -name "*.jar" -exec bash -c 'jar -tf {} |grep -H --label {} GenericClassLoader' \;
但我收到错误:
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
请帮我解决这个问题,我的命令有什么问题。