답변:
unzip <target-zip-file> '<folder-to-extract/*>' -d <destination-path>
EL 6에서 잘 작동합니다
"\\"
사용됩니다 (그렇지 않으면 항상 어떤 문자가 특수 이스케이프인지 기억해야합니다). 저자가 "글로브 캐릭터 인용"(불필요한)을 의미한다면 인용의 차이입니다. 어느 쪽이든 단일 백 슬래시는 오타입니다.
시험:
unzip /path/to/archive.zip 'in/archive/folder/*' -d /path/to/unzip/to
caution: filename not matched: foldername/\*
내가 실행할 때 unzip $repozip "$2-master/\*" -d /srv/www/magento/
어디서 $2
난에서 모든 파일 및 폴더를 끌어 원하는 지퍼의 폴더 이름입니다
"path/*"
.
mv
나중에 필요한 파일을 얻기 위해 나중에 사용 합니다.
-j
그것을 위해 사용하십시오 .
-j
모든 경로 정보를 제거하고 모든 파일이 대상 폴더로 이동합니다. 경로의 공통 부분 만 제거하는 방법이 있습니까? 지퍼와 비슷합니다 -r
.
기존의 두 가지 대답은 모두 정확하지만 대상 디렉토리를 지정하는 것은 약간 까다 롭습니다.
의 말을하자 /target/root/
원래의 압축 해제 조치, 예를 들면시 대상 디렉토리입니다 :
unzip -qq src.zip -d "/target/root/"
그런 다음 /target/root/
unzip이 작동하는 방식으로 특정 하위 디렉토리 만 추출하려는 경우에도 나중에 대상 디렉토리 와 동일하게 사용해야 합니다.
unzip -qq src.zip "sub/dir/*" "/target/root/"
결국 규칙은 실제로 간단 합니다-d
. 옵션에 동일한 대상 루트 디렉토리를 사용하십시오 .
BTW, -qq
압축 해제 옵션은 정말 조용합니다. 자유롭게 제거하십시오.