JAR 파일 세트의 패턴과 일치하는 속성 파일을 찾는 방법은 무엇입니까?

JAR 파일 세트의 패턴과 일치하는 속성 파일을 찾는 방법은 무엇입니까?

나는 bash 쉘을 사용하고 있습니다. 다양한 수준의 디렉토리에 JAR 파일 세트가 있습니다.

> find . -name "*.jar"
/tmp/jars/META-INF/lib/jackson-datatype-jdk8.jar
/tmp/jars/lib/my-custom.jar
...

이러한 JAR 파일에 "test-*.properties"와 일치하는 파일 이름을 가진 속성 파일이 포함되어 있는지 확인하고 싶습니다. 각 JAR 파일의 압축을 풀고 해당 내용을 검색하고 싶지 않습니다. 이 정보를 알아낼 수 있는 방법이 있나요?

답변1

아카이브 내부의 일부 조작이 필요하지만, 예를 들어 unzip -l모든 파일을 추출하는 대신 archive list 명령을 사용하여 수행할 수 있습니다.

find . -name \*.jar -exec sh -c \
  'jar --list --file={} | grep -q '\''test-.*\.properties'\'' && printf "%s\n" {}' \;

어쩌면 unzip -l더 빠르지만 구문 분석하기가 더 어려울까요? jar디스크에서 제거하는 것이 더 느린 것 같습니다.

관련 정보