Я искал вокруг, как извлечь архив XIP с помощью командной строки без везения, поэтому я оставляю свое собственное решение, как функция bash
, здесь.Как извлечь архив xip с помощью командной строки?
Я нашел свое вдохновение here.
Я искал вокруг, как извлечь архив XIP с помощью командной строки без везения, поэтому я оставляю свое собственное решение, как функция bash
, здесь.Как извлечь архив xip с помощью командной строки?
Я нашел свое вдохновение here.
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
, пропустив .
, чтобы избежать перезаписывания текущих разрешений рабочего каталога.
Это делает трюк для распаковки Xcode8.xip
архивов на OS X El Capitan.
Вы можете просто запустить:
open archive.xip
open -W archive.xip
будет работать лучше, так как он будет блокироваться, пока архив не закончил открытие.
Это нежелательно с точки зрения CI, так как для установки стороннего приложения требуется установка встроенных инструментов (/ System/Library/CoreServices/Applications/Archive Utility.app/Contents/MacOS/Archive Utility), установленных в системе выполнить работу. – ablarg