압축된 아카이브에서 특정 폴더만 특정 디렉터리로 추출하는 방법은 무엇입니까?

압축된 아카이브에서 특정 폴더만 특정 디렉터리로 추출하는 방법은 무엇입니까?

압축된 아카이브에서 특정 폴더를 특정 디렉토리로 추출하는 방법은 무엇입니까?

나는 사용하려고

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/

관련 정보