안녕하세요, 케이치입니다.
오늘은 리눅스 환경에 배포한 WAR 또는 JAR 파일에 새로운 파일을 추가하거나 기존 파일을 업데이트하는 방법을 알려드리겠습니다. 그닥 이렇게 할 일이 없다보니 할 때마다 계속 까먹어서 그냥 혼자 끄적일겸 적어봅니다.
우선 /mydir/myapp.war 파일이 있다고 가정합니다.
우선 이 파일안에 어떤 파일이 있는지부터 확인해보죠.
$ cd /mydir
$ ll (또는 ls -l)
-rw-rw-r--. 1 keichee keichee 63378 Nov 6 11:37 myapp.war
$ unzip -l myapp.war
Archive: myapp.war
Length Date Time Name
--------- ---------- ----- ----
0 11-06-2017 11:28 META-INF/
128 11-06-2017 11:28 META-INF/MANIFEST.MF
0 11-06-2017 11:28 css/
0 11-06-2017 11:28 images/
0 11-06-2017 11:28 WEB-INF/
0 11-06-2017 11:28 WEB-INF/classes/
0 11-06-2017 11:28 WEB-INF/classes/com/
0 11-06-2017 11:28 WEB-INF/classes/com/my/
WAR파일안에 어떤 파일들이 들어가있는지 디렉토리 경로까지 전부 확인할 수 있습니다.
이제 파일 하나를 추출해보도록 하죠.
추출할 대상은 /META-INF/MANIFEST.MF 입니다. 사이즈가 128이군요.
$ unzip myapp.war META-INF/MANIFEST.MF
Archive: myapp.war
inflating: META-INF/MANIFEST.MF
$ ll (또는 ls -l )
-rw-rw-r--. 1 keichee keichee 44109477 Nov 6 11:37 myapp.war
drwxrwxr-x. 3 keichee keichee 17 Nov 9 14:42 META-INF
META-INF 디렉토리가 생성된 것을 확인할 수 있습니다.
$ cd META-INF
$ ls -l
-rw-rw-r--. 1 keichee keichee 128 Nov 6 11:28 MANIFEST.MF
파일이 있는 것을 확인할 수 있습니다. 사이즈가 128로 위에서 조회한 것과 동일하네요.
그럼 파일을 수정해볼까요?
$ vi MANIFEST.MF
마음대로 내용을 수정해서 파일 사이즈가 달라지도록 해주세요.
$ ls -l
-rw-rw-r--. 1 keichee keichee 145 Nov 9 13:38 MANIFEST.MF
파일의 사이즈와 시간이 변경되었네요. 128 -> 145
그럼 이 파일을 이제 다시 WAR 파일안으로 업데이트해서 넣어보도록 하겠습니다.
$ jar uvf myapp.war META-INF/MANIFEST.MF
adding: META-INF/MANIFEST.MF(in = 145) (out= 120)(deflated 17%)
파일을 추가한다고 나오면서 압축이 얼마나 됐는지가 나오네요. 17%가 압축됐습니다. 참고로 여기서 in은 실제 파일 사이즈고 out은 압축된 파일사이즈 입니다.
만약 jar 명령어가 없을 경우에는 zip 명령어를 사용할 수도 있습니다.
$ zip -r myapp.war META-INF/MANIFEST.MF
adding: META-INF/MANIFEST.MF(in = 145) (out= 120)(deflated 17%)
이제 다시 myapp.war 파일에 어떤 파일들이 있는지 조회해보도록 하겠습니다.
$ unzip -l myapp.war
Archive: myapp.war
Length Date Time Name
--------- ---------- ----- ----
0 11-06-2017 11:28 META-INF/
145 11-09-2017 13:38 META-INF/MANIFEST.MF
0 11-06-2017 11:28 css/
0 11-06-2017 11:28 images/
0 11-06-2017 11:28 WEB-INF/
0 11-06-2017 11:28 WEB-INF/classes/
0 11-06-2017 11:28 WEB-INF/classes/com/
0 11-06-2017 11:28 WEB-INF/classes/com/my/
파일 사이즈와 날짜가 변경이 되었네요.
참고로 여기에 조회되는 파일사이즈는 압축되기 전의 파일 사이즈입니다.
vi 에서 문자열 치환하기 (0) | 2018.01.23 |
---|---|
리눅스 서버 재부팅/재기동 시간 확인하기 (0) | 2017.11.10 |
리눅스에서 명령어 히스토리 조회 할 때 날짜 및 시간 함께 표시하기 (0) | 2017.11.02 |
[리눅스] find 와 wc를 이용한 하위 디렉토리 모든 파일 갯수 구하기 (0) | 2015.10.14 |
[리눅스] 정규표현식을 이용한 파일 삭제 (0) | 2015.10.14 |