2016-11-04 5 views

답변

1
function unxip() 
{ 
    [ -z "$1" ] && echo "usage: unxip /path/to/archive.xip" && return 

    # http://newosxbook.com/src.jl?tree=listings&file=pbzx.c 
    PBZX="/usr/local/src/pbzx/pbzx" && [ ! -x "$PBZX" ] && echo "$PBZX not found." && return 

    [ ! -f "$1" ] && echo "$1 not found." && return 

    [ -f "Content" ] || [ -f "Metadata" ] && echo "Content or Metadata already exists." && return 

    pkgutil --check-signature "$1" && xar -xf "$1" && "$PBZX" Content | sudo tar x --strip-components=1 

    rm "Content" "Metadata" 
} 

우리는 먼저 xar를 사용하여 내용을 추출 xip 파일 서명을 확인합니다. 그런 다음 Jonathan Levin pbzx을 사용하여 청크를 적절히 압축하고 으로 출력을 파이프합니다. .을 건너 뛰므로 현재 작업 디렉토리 권한을 덮어 쓰지 않습니다.

OS X El Capitan에서 Xcode8.xip 아카이브의 압축을 푸는 트릭입니다.

+0

시스템에 이미 설치된 기본 도구 (/ System/Library/CoreServices/Applications/Archive Utility.app/Contents/MacOS/Archive 유틸리티)에 타사 응용 프로그램을 설치해야하므로 CI 관점에서 바람직하지 않습니다. 작업을 수행하십시오. – ablarg

1

당신은 실행할 수 있습니다 : 아카이브가 오프닝을 마칠 때까지 그 다음 차단하기 때문에

open archive.xip 
2

open -W archive.xip 더 잘 작동합니다.