[Linux]모든 하위 디렉토리 내 모든 파일을 상위로 이동 후 압축 해제

Background

  • Binance Data 에서 압축파일을 다운로드 하면 최종 zip파일이 존재하는 Directory Depth가 꽤 깊다. 거기에 거래되는 Coin/Token 갯수가 200개 가까이 되다보니 압축을 풀고 관리하기 위해서는, 일괄로 모든 파일을 최상위로 끌어올릴 필요가 있었다.
  • 끌어올린 다음에는 압축을 모두 풀어줄 필요가 있었다.

Solution

  • find로 각각 찾은 결과를 -exec 옵션으로 mv 명령에 Parameter로 던져준다.
  • unzip도 동일하게 find를 사용해서 처리한다. 그렇지 않으면 "caution: filename not matched:" 에러를 보게 된다.

Shell Script

find . -type f -name "*.zip" -exec mv {} ~/Downloads/Archive \;
find . -type f -name "*.zip" -exec unzip {} \;

References