どの瓶にクラスが含まれているのを見つけようとしています、私は以下を書いています、それはどんなアイデアにも関わらないようですか?
find -type f -name "*.jar" -exec jar -tvf "{}" \| grep MyClass \; -ls
_
これは動作しません.Calls Exec(3)を直接見つけてください。そのため、コマンドラインをシェルとして解釈しません(パイプを設定するため)。
私がこのようなことをする必要があるとき、私は一般的に私がスクリプトに配管したいものを投げてください。もう一つのオプションです
find . -type f -name "*.jar" -exec sh -c "jar -tvf '{}' | grep MyClass" \; -ls
_
FWIW、私の個人的なfindclassinjarです
for x in `find . -name "*.jar" -o -name "*.Zip"` ; do if unzip -l $x | grep -q $1 > /dev/null ; then echo $x ; fi ; done
_
それは彼らの中のスペースを持つディレクトリとは機能しませんが、プロジェクトではそうしないでください。
私はあなたが欲しいものをかなりよくわからない......Classファイルを含む.jarファイルのファイル名を表示する少しのbashです。
_for f in `find *.jar`; do if jar -tvf $f | grep class &>/dev/null; then echo $f; fi; done
_
_echo $f
_ステートメントを取り外して、それでもgrep
コマンドをカスタマイズするだけでなく、独自のカスタマイズを行うことができます。
それが役に立てば幸い。