Java developer spend a lot of time working with zip files it always surprises me that many reach for winzip when some really quite simple command line operation will do. These should all work fine on Unix or using Cygwin, I have consciously used unzip rather than jar as it is more readily available.
First is a quite simple question, does this file file contain a particular file?
unzip -l Example.jar | grep LookingFor.java or the slightly prettier version with jar: jar -tf Example.jar | grep LookingFor.java
Second is that you want to look at the content of a file in the zip.
unzip -pq Example.jar META-INF/MANIFEST.MFThirdly you sometimes need to search a bunch of jar files looking for a particular class file: (Thanks a lot to Mark Warner for optimising this for me)
find . -name "*.jar" -type f -exec sh -c 'jar -tf {} | grep "ProtocolHandlerT3"' \; -exec echo ^^^^^^^ in {} \;
Finally the last operation is that you want to be able to compare two zip files, if you have a some UI tools for this then great but this little script will give you a quick command line diff:
#!/bin/bash FIRST_DIR=`mktemp -d` SECOND_DIR=`mktemp -d` echo Unzipping $1 to ${FIRST_DIR} unzip -q $1 -d ${FIRST_DIR} echo Unzipping $2 to ${SECOND_DIR} unzip -q $2 -d ${SECOND_DIR} diff -r ${FIRST_DIR} ${SECOND_DIR} rm -rf ${FIRST_DIR} rm -rf ${SECOND_DIR}
1 comment:
now this is a post worth bookmarking! thanks gerard!
Post a Comment