web-dev-qa-db-ja.com

コマンドラインを使用してxipアーカイブを抽出する方法

運の悪いコマンドラインを使用してXIPアーカイブを抽出する方法を探したので、ここでbash関数として独自のソリューションを残します。

私はインスピレーションを見つけました ここ

12
Ninja Inc
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"
}

最初にxipファイルの署名を確認してから、xarを使用してその内容を抽出します。次に、Jonathan Levin pbzx を使用してpbzxチャンクを適切に解凍し、出力をtarにパイプして、.をスキップして、現在の作業ディレクトリの権限の上書きを回避します。

これは、OS X El CapitanでXcode8.xipアーカイブを解凍するトリックです。

7
Ninja Inc

あなたは試すことができます:

xip -x [path to .xip file]

6
Geoff Nixon

open -W archive.xipは、アーカイブが開くまでブロックされるため、より適切に機能します。

3
ablarg

MacOS Mojave(他のOSバージョンについては不明)で、コンテンツを展開するディレクトリに移動し、xip --expand /path/to/xip.xipを実行します。例えば:

iMac:Applications jeff$ xip --expand /Users/jeff/Downloads/Xcode_11_Beta.xip
2
Jeff Kelley

nxip を使用します。あなたはそれをHomebrewでインストールできます:

brew install thii/unxip/unxip

.xipファイルを抽出するには:

unxip path/to/.xip
1
Thi

あなたはただ走ることができます:

open archive.xip
0
maskeda