Setting, Error/Linux

Shell Script - unzip 자동화

Juheon Kwak 2025. 3. 12. 17:48

# zip 파일 리스트 정보를 가지고, 바로 unzip 하는 코드 / 에러 발생시에 error.log에 어떤 파일이 잘못되었는지 저장함.

exps=*.zip

for e in $exps
do
    unzip $e || echo $e >> error.log
done

 

 

 

1. *.zip -> zip으로 끝나는 전체 파일 리스트를 다 불러옴

 

2. 불러온 결과를 exps 변수에 배열로 저장

 

3. 반복문 실행 (python과 비슷하나, 변수를 사용할 때 $를 꼭 붙일 것)

 

4. 조건문이나 반복문의 시작은 do, 끝맺음은 done

 

5. 반복이 돌면서 exps안에 있는 zip 파일명들을 하나씩 차례대로 e에 불러옴

    ex) [a.zip b.zip] -> unzip a.zip / unzip b.zip 이 차례대로 실행됨

 

6. 이 때 다양한 문제로 unzip 과정이 제대로 실행되지 않을 수 있음

    - 이럴 때는 대부분 try/catch를 사용하는데 shell script에서는 try/catch가 없음

    - 이항연산자로(||) 만약 unzip이 잘 되지 않았을 때 log를 기록하도록 함

 

7. 어떤 파일이 문제인지 알아야 하므로 파일명(e)를 error.log 파일에 기록

 

8. 이 때 echo 명령어를 통해 command에 출력하게 되는데, 출력결과를 바로 error.log에 저장함

    - > 를 사용하면 기존 파일을 계속 overwrite (기존 정보가 날아감)

    - >> 를 사용하면 기존 파일의 하단에 계속 정보 추가