활연개랑

[Linux] 여러개 zip파일 각각 폴더 만들어서 unzip하기 본문

Linux

[Linux] 여러개 zip파일 각각 폴더 만들어서 unzip하기

승해tmdhey 2023. 6. 26. 16:51
반응형

여러개 zip파일을 그냥 unzip해버리면 폴더에 모든 파일이 들어가게 됩니다.

zip파일에 해당하는 폴더를 만들어서 unzip하는 방법입니다. 

 

 

일단 bash shell을 만들어야 합니다. 

terminal에 아래와 같이 입력하여 sh 파일을 생성해줍니다. 

nano unzip.sh

 

unzip.sh파일에 아래와 같이 입력해주고, exit해줍니다. 

source_dir은 zip파일이 위치하는 directory, 

target_dir은 unzip된 폴더들이 위치할 directory 

#!/bin/bash

source_dir="/a"
target_dir="/b"


find "$source_dir" -type f -name "*.zip" | while read -r zipfile; do

  folder_name=$(basename "$zipfile" .zip)
  mkdir -p "$target_dir/$folder_name"
  unzip "$zipfile" -d "$target_dir/$folder_name"
done

 

이후 아래 명령어를 통해 파일 실행 권한을 추가하고, 스크립트를 실행합니다.

chmod +x unzip.sh
./unzip.sh

 

끝 ~`.