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

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

3 ответа

Решение

Поиск внутри 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 + Введите для поиска другой фразы.

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

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

unzip -t example.war |grep filename

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

Другие вопросы по тегам