Engineering/Linux

unzip exclude 예외 옵션 예시

부스 boos 2025. 11. 20. 15:44
728x90

 Windows 에서 zip 으로 압축한 파일을 linux 계열에서 unzip 을 할때, 필요없는 파일들은 -x 옵션으로 제외할 수 있다.
 
 예를 들어 아래와 같이 "StreamingAssets" 을 추가하면 StreamingAssets 이 포함된 디렉토리들이 안 풀릴거 같지만, 실제로는 다 풀린다.

 $ unzip ArchiveFile.zip -x "StreamingAssets" -d outputDir



 이렇게 되는 원인은 windows 에서 압축하다보니 경로명이 '\' 로 들어간다.

 $ unzip -l ArchiveFile.zip | grep "StreamingAssets"
  791749  09-25-2025 07:57   XXX_Data\StreamingAssets\StandaloneWindows64\predownload_assets\assetbundles\effect\fx_texture\fx_01_lc.png.bundle
   310162  09-25-2025 07:57   XXX_Data\StreamingAssets\StandaloneWindows64\predownload_assets\assetbundles\effect\fx_texture\fx_02_lc.png.bundle
   243179  09-25-2025 07:57   XXX_Data\StreamingAssets\StandaloneWindows64\predownload_assets\assetbundles\effect\fx_texture\fx_01_diffuse.png.bundle
   272874  09-25-2025 07:57   XXX_Data\StreamingAssets\StandaloneWindows64\predownload_assets\assetbundles\effect\fx_texture\fx_01_normal.png.bundle
   599611  09-25-2025 07:57   XXX_Data\StreamingAssets\StandaloneWindows64\predownload_assets\assetbundles\effect\fx_texture\fx_02.png.bundle
  1153357  09-25-2025 07:57   XXX_Data\StreamingAssets\StandaloneWindows64\predownload_assets\assetbundles\effect\fx_texture\fx_02_n.png.bundle
   217777  09-25-2025 07:57   XXX_Data\StreamingAssets\StandaloneWindows64\predownload_assets\assetbundles\effect\fx_texture\fx_03.png.bundle
   319129  09-25-2025 07:57   XXX_Data\StreamingAssets\StandaloneWindows64\predownload_assets\assetbundles\effect\fx_texture\fx_03_n.png.bundle
    61573  09-25-2025 07:57   XXX_Data\StreamingAssets\StandaloneWindows64\predownload_assets\assetbundles\effect\fx_texture\fx_oad.png.bundle
   ...


   
  linux 에서 -x 를 적용하려면 다음과 같이 해야한다.

$ unzip ArchiveFile.zip -x '*\\StreamingAssets\\*' -doutputDir


  
  다른 디렉토리도 제외하려면 다음과 같이 하면 된다. (-x 는 한번만 사용하고 뒤에 제외할 패턴을 이어서 추가한다)

$ unzip ArchiveFile.zip -x '*\\StreamingAssets\\*' '*\\Content\\Paks\\*' -d outputDir


  
  7zip 도 특정 디렉토리에서 제외하는 옵션을 지원하는데, unzip 하고는 조금 다르다.

$ 7z x ArchiveFile.zip -ooutputDir -r -x!*StreamingAssets\*


  ( -r : 하위 디렉토리까지 포함, -x 뒤에 ! 로 시작하는거는 *가 특수문자라서 escapce 라고 보면 된다.)
  

$ 7z x xboxFile.zip -ooutputDir -r -x!*.msixvc -x!*.xvc

  (.msixvc 나 .xvc 인 확장자인 파일들은 unzip 에서 제외)