압축된 아카이브에서 특정 폴더를 특정 디렉토리로 추출하는 방법은 무엇입니까?
나는 사용하려고
unzip "/path/to/archive.zip" "in/archive/folder/" -d "/path/to/unzip/to"
하지만 이렇게 하면 압축을 풀려는 경로에만 폴더가 생성되고 다른 작업은 수행되지 않습니다.
답변1
unzip /path/to/archive.zip "in/archive/folder/*" -d "/path/to/unzip/to"
답변2
노력하다:
unzip /path/to/archive.zip 'in/archive/folder/*' -d /path/to/unzip/to
답변3
기존 답변은 모두 정확하지만 대상 디렉터리를 지정하는 것은 약간 까다로우므로 더 명확하게 설명해야 합니다.
/target/root/
이것이 원래 압축 해제 작업의 대상 디렉터리라고 가정합니다 . 예를 들면 다음과 같습니다.
unzip -qq src.zip -d "/target/root/"
/target/root/
그런 다음 특정 하위 디렉터리만 추출하려는 경우에도 압축을 풀었던 방법과 마찬가지로 대상 디렉터리와 동일한 콘텐츠를 사용해야 합니다.
unzip -qq src.zip "sub/dir/*" "/target/root/"
결국 규칙은 실제로 매우 간단합니다.-d
옵션에 동일한 대상 루트를 사용하십시오..
그런데 이 -qq
옵션을 사용하면 감압이 매우 조용해 지므로 자유롭게 제거하십시오.
답변4
*
둘 다 지정해야 합니다 **/*
.path/in/archive/
unzip src.zip 'path/*' 'path/**/*' -d /target/dir/
이것은 작동합니다.
이들 중 하나를 무시하면 기존 파일을 건너뜁니다.
예:
unzip aar.aar 'res/**/*' 'res/*' -d /lib/res/