jar 나 war 파일을 특정 디렉토리에 압축 해제

jar 와 war 를 가끔 압축 해제해서 제대로 패키징되었는지 확인해 볼 필요가 생기는데 jar 유틸리티는 압축을 특정 폴더에 풀어주는 옵션이 없다.

.war 은 압축해제시 현재 폴더에 다음과 같이 여러개의 하위 폴더가 생겨서 불편하기도 하다.

> ls
META-INF  resources  WEB-INF

 

war 파일과 압축 해제할 디렉터리를 옵션으로 받아서 압축해제하는 shell script 를 간단하게 만들어 본다.

#!/bin/sh
function usage {
    echo "  USAGE: $0 WAR_FILE EXTRACT_DIRECTORY"
    echo "EXAMPLE: $0 my-webapp.war /home/lesstif/webapp/"
    exit;
}
if [ $# -ne 2 ]
  then
    echo "No arguments supplied";
    usage;
fi
WAR="$1";
DIR="$2";
if [ ! -f ${WAR} ];then
    echo "WAR file(${WAR}) not found!";
    exit 1;
fi;
if [ ! -d ${DIR} ];then
    echo "target directory(${DIR}) does not exist. create it.";
    mkdir -p ${DIR};
fi;
WAR="$PWD/$1";
echo "Entering Directory $WAR"
cd $DIR
jar -xvf ${WAR}