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

10

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

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

Ответы:

7

Поиск внутри jar- файлов:

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

И похоже на военные файлы:

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

Изменить fooс текстом вашего интереса (например, abc.png).

Вы можете нажать:

  • n искать следующий образец соответствия.
  • Shift+ nискать в обратном направлении,
  • /+ введите something+, Enterчтобы найти другую фразу.

Смотрите похожие, но на Windows: Поиск, какие банки содержат файл

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

Вы можете использовать команду unzip для этой цели:

unzip -t example.war |grep filename
Ромео Нинов
источник
-1

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

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