Как рекурсивно искать файлы в файлах war, ear и jar в Linux

21410
ashok_p

Мне нужно найти файл (logo.png) в папке, содержащей архивные файлы war, ear и jar. Кто-нибудь может мне помочь с командой?

9
Используйте эту команду в терминале ------> найти [PATH] -name "[FILENAME]" vembutech 8 лет назад 1
Вы имеете в виду поиск файлов внутри архива war, ear или jar? kenorb 8 лет назад 0
@kenorb да точно ashok_p 8 лет назад 0

3 ответа на вопрос

7
kenorb

Searching inside jar files:

find . -name \*.jar -exec sh -c 'printf "\n\nFile: {}"; jar tf {}' ";" | less +/foo 

And similar with war files:

find . -name \*.war -exec sh -c 'printf "\n\nFile: {}"; unzip -l {}' ";" | less +/foo 

Change foo with text of your interest (such as abc.png).

You can press:

  • n to search for the next pattern match.
  • Shift+n to search backwards,
  • / + type something + Enter to search for another phrase.

See similar, but on Windows: Finding which jars contain a file

Если мне нужно найти файл abc.png в архиве войны, как я могу сделать с помощью приведенной выше команды. ashok_p 8 лет назад 0
@ashok_p Заменить `Foo` на` abc.png`. kenorb 8 лет назад 0
1
Romeo Ninov

You can use unzip command for this purpose:

unzip -t example.war |grep filename 
-1
Michael G.

jar tvf foo.war | grep имя файла

Хотя этот фрагмент кода может быть правильным, отсутствие ЛЮБОЙ контекстуализирующей информации делает этот ответ бесполезным и бесполезным. music2myear 5 лет назад 0

Похожие вопросы