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

How to extract xip archive using command line?

我搜索了如何使用命令行提取 XIP 存档,但没有成功,所以我将自己的解决方案作为 bash 函数留在此处。

我找到了灵感

function unxip()
{
    [ -z "" ] && 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 "" ] && echo " not found." && return

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

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

    rm "Content" "Metadata"
}

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

这可以在 OS X El Capitan 上解压 Xcode8.xip 档案。

你可以 运行:

open archive.xip

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

你可以试试:

xip -x [path to .xip file]

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

brew install thii/unxip/unxip

要提取 .xip 文件:

unxip path/to/.xip

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

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