O comando abaixo procuraria os arquivos jar com substring spring
.
find /some/dir -type f -name "*spring*.jar"
Agora, seu comando original examina o conteúdo, que não é o que o texto em torno dele ou os exemplos dizem.
find . -name "*.jar" -exec jar tf '{}' \| grep -H "spring" \;
Encontre esta descrição do bate-papo, onde Gilles explica por que o comando acima não é o que você está procurando.
Teste
[root@keithpc check]# cd jar_check/
[root@keithpc jar_check]# ls
[root@keithpc jar_check]# touch spring1.jar
[root@keithpc jar_check]# touch 1spring.jar
[root@keithpc jar_check]# touch no_sss_spring.jar
[root@keithpc jar_check]# touch spring.txt
Saída :
[root@keithpc jar_check]# find ./ -type f -name "*spring*.jar"
./no_sss_spring.jar
./1spring.jar
./spring1.jar
Como você pode ver, o arquivo spring.txt
não foi retornado, o que acredito ser o que você está procurando.
Agora, para entender o que seu comando faz,
- Primeiro, criei um arquivo java que tem o nome como
springtest
.
- Agora, eu crio o arquivo
class
executando o comando java
no
java
file.
- Agora, adiciono-o ao arquivo jar executando o comando jar.
-
Agora, quando eu executar seu comando, ele retornará o arquivo class
em vez do arquivo jar que você está procurando.
[root@keithpc jar_check1]# javac springtest.java
[root@keithpc jar_check1]# java springtest
Hello,spring
[root@keithpc jar_check1]# jar cvf springtest.jar springtest.class
added manifest
adding: springtest.class(in = 426) (out= 286)(deflated 32%)
##Here I run your command after creating the jar file.
[root@keithpc jar_check1]# find . -name "*.jar" -exec jar tf '{}' \|
grep -H "spring" \;
##As you can see, it returns me the class file rather than the
jar file as the output.
springtest.class