본문 바로가기

서버/SHELL 스크립트

여러 폴더를 한번에 압축하기 + 압축하면서 비밀번호도 같이 넣기



제목처럼 내용이 길기 때문에,

그냥 명령어 한줄로는 되지 않고 스크립트 파일을 만들어야 합니다.



사용목적

동일한 패턴에 디렉토리 뒤쪽에 숫자만 다른 폴더들이 여러개 있을 때,

이것들을 각각의 폴더명.zip으로 압축을 하고 싶은데, 압축할때 비밀번호를 입력해서 압축하고 싶습니다.

이것을 자동화해주는 스크립트!!!


#!/bin/sh


for ld in `ls -d ./*`; do


echo $ld;

cd $ld;

zip -P pwdpwd -r $ld.zip *;

mv "$ld.zip" ..

cd ..

#rm -rf "$ld"

echo "out: $ld.zip"


done



어려워보이지만, 한줄한줄 보면 그닥 어려운것이 없음!



#!/bin/sh (이 스크립트는 /bin/sh 로 동작)


for ld in `ls -d ./*`; do    (ls -d ./*를 실행해서 나온 파일명을 ld변수에 저장하고 루프)


echo $ld;    (잘 나오나 한번 디렉토리 명 표기)

cd $ld;    (해당 디렉토리 안으로 이동)

zip -P pwdpwd -r $ld.zip *;    (안의 모든 것을 $ld(디렉토리명).zip으로 압축하며 비밀번호를 pwdpwd로 설정)

mv "$ld.zip" ..    (압축한 파일을 상위 폴더로 이동)

cd ..    (상위 폴더로 이동)

#rm -rf "$ld"    (압축한 디렉토리 삭제를 하려면 #을 지우면 됩니다.)

echo "out: $ld.zip"    (아웃된 zip파일 출력)


done    (루프 종료)



간단하죠!?



사업자 정보 표시
KDN Company | 임현석 | 서울시 노원구 상계5동 157-1 7/2 | 사업자 등록번호 : 217-08-58218 | TEL : 070-8875-5869 | 통신판매신고번호 : 2009-서울노원-0546호 | 사이버몰의 이용약관 바로가기