J'ai cherché sur la façon d'extraire l'archive XIP en ligne de commande avec pas de chance si je quitte ma propre solution, en fonction bash
, ici.Comment extraire l'archive XIP en ligne de commande?
Je trouve mon inspiration here.
J'ai cherché sur la façon d'extraire l'archive XIP en ligne de commande avec pas de chance si je quitte ma propre solution, en fonction bash
, ici.Comment extraire l'archive XIP en ligne de commande?
Je trouve mon inspiration 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"
}
Nous vérifions d'abord pour xip
signature du fichier puis extraire son contenu en utilisant xar
. Nous utilisons ensuite Jonathan Levin pbzx pour décompresser correctement pbzx
morceaux et redirigez la sortie à tar
, en sautant .
pour éviter d'écraser les autorisations de répertoire de travail en cours.
Cela fait l'affaire pour décompresser Xcode8.xip
archives sur OS X El Capitan.
Vous pourriez exécuter:
open archive.xip
open -W archive.xip
fonctionnera mieux, car il sera alors bloqué jusqu'à ce que l'archive a terminé l'ouverture.
Ceci est indésirable d'un point de vue CI car il nécessite l'installation d'une application tierce partie lorsque les outils natifs (/ System/Library/CoreServices/Applications/Archive Utility.app/Contents/MacOS/Archive utilitaires) installés sur le système déjà effectuer le travail. – ablarg