如何使用命令行提取xip存档?

Nin*_*Inc 11 macos xcode osx-elcapitan macos-sierra xcode8

我搜索了如何使用命令行提取XIP存档而没有运气,所以我将离开我自己的解决方案,作为一个bash功能,在这里.

我在这里找到了灵感.

Jef*_*ley 14

在 macOS Mojave(不确定其他操作系统版本)上,导航到您想要展开内容的目录,然后运行xip --expand /path/to/xip.xip. 例如:

iMac:Applications jeff$ xip --expand /Users/jeff/Downloads/Xcode_11_Beta.xip
Run Code Online (Sandbox Code Playgroud)

  • 我刚刚检查过,在 macOS High Sierra (10.13.6) 中,这个命令也可以工作,尽管在“man xip”中没有提到,但奇怪的是。我遇到了一些身份验证问题,从developer.apple.com 重新下载文件后将其清除。 (2认同)

Nin*_*Inc 7

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"
}
Run Code Online (Sandbox Code Playgroud)

我们首先检查xip文件签名,然后使用提取其内容xar。然后,我们使用Jonathan Levin pbzx适当地解压缩pbzx块并将输出通过管道传输到tar,从而跳过该操作.以避免覆盖当前的工作目录权限。

这确实可以Xcode8.xip在OS X El Capitan上解压缩存档。


Thi*_*Thi 7

使用unxip。您可以使用 Homebrew 安装它:

brew install thii/unxip/unxip
Run Code Online (Sandbox Code Playgroud)

要提取.xip文件:

unxip path/to/.xip
Run Code Online (Sandbox Code Playgroud)


abl*_*arg 6

open -W archive.xip 会更好地工作,因为它会阻塞,直到存档完成打开。


Geo*_*xon 6

您可以尝试:

xip -x [path to .xip file]

  • 就是这样。 (5认同)