web-dev-qa-db-ja.com

.xipファイルを特定のフォルダーに抽出する

[〜#〜] xip [〜#〜]ファイルはZipに類似していますが、アーカイブが展開される前に、受信システムでデジタル署名を適用および検証できます。 [〜#〜] xip [〜#〜]ファイルを(ダブルクリックして)開くと、アーカイブユーティリティは自動的にそれを展開します(ただし、デジタル署名が損なわれていない場合のみ)。

基本的に、.xipファイルは、作成者がファイルを保存してからファイルが変更されていないことを確認するための署名付きの.Zipです。これにより、ディスクエラーによる損傷と、サードパーティによるファイルの改ざんの両方から保護されます。

誰かがこのファイルを抽出する方法を知っていますか? ターミナルを使用して、.xipファイルが存在するフォルダではなく特定のフォルダに?

10
Antony Raphel

多分試してください:

xip -x [path to .xip file]

これにより、アーカイブが現在の作業ディレクトリに解凍されます。

特定のディレクトリへの抽出に関しては、明示的なオプションはありませんが、xip -xは現在の作業ディレクトリに抽出します。したがって、ファイルを抽出する場所へのcdingが機能するはずです。特にこれを自動化する必要がある場合は、次の効果を持つスクリプトを作成します。

#!/bin/sh

xipfile="$(cd $(dirname "$1"); pwd -P)/$(basename "$1")" # a portable "realpath"

cd "$2"
xip -x "$xipfile"

私は思うトリックをするべきですか?

13
Geoff Nixon

アーカイブユーティリティ自体を開き、Preferencesに移動して特定の宛先フォルダーを設定し、ファイルをダブルクリックします。このようにして、特定の宛先への拡張を実現しました。 ;-)

7
Hug

以下を試してみたいフォルダにアーカイブを抽出することをお勧めします:

xar -xf file.xip -C /path/to/target

(および/または)

tar -zxvf file.xip -C /path/to/target

xarおよびtarコマンドは、.xip "コンテンツ"および "メタデータ"を未加工の形式で抽出します。

pbzxストリームパーサーを使用して、lzma圧縮されたペイロードである「コンテンツ」を抽出する必要があります。形式は、パッケージインストーラー内にあるものと似ています(例:.pkg)。 ここからpbzxソースをコンパイルする または コンパイルしたバイナリをダウンロードする をインストールして/usr/local/binにインストールし、pbzxコマンドを呼び出します。

pbzx -n Content | cpio -i

コマンドがコンテンツの解析を完了した後、.xipアーカイブ内のコンテンツの元の形式を取得する必要があります。

便利/追加情報

$ pkgutil --check-signature file.xip 

Xcode_9_beta_2.xipは次を返します:

Package "Xcode_9_beta_2.xip":
   Status: signed Apple Software
   Certificate Chain:
    1. Software Update
       SHA1 fingerprint: 1E 34 E3 91 C6 44 37 DD 24 BE 57 B1 66 7B 2F DA 09 76 E1 FD
       -----------------------------------------------------------------------------
    2. Apple Software Update Certification Authority
       SHA1 fingerprint: FA 02 79 0F CE 9D 93 00 89 C8 C2 51 0B BC 50 B4 85 8E 6F BF
       -----------------------------------------------------------------------------
    3. Apple Root CA
       SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60

メモ

重要:macOS Sierra以降、Appleで署名されたXIPアーカイブのみが展開されます。XIPを使用している開発者アーカイブは、署名されたインストーラーパッケージまたはディスクイメージの使用に移行する必要があります。

OS Xマニュアルページ:xip

7
l'L'l

今のところ、それを達成するための単一のツールはないようです。 pbzxストリームをデコードできるツールが必要です。macOSにプリインストールされているツールはないようです。

これらの回答にはさまざまな解決策があります。

0

Spotlight Search (Command+Space)で「Archive Utility」を検索すると、出力を変更できます。次にArchive Utility> Preferences(Command+,)。次に拡張ファイルを保存>> ...とすると、出力ディレクトリを変更できます。 :)

より簡単に言えば、「アーカイブユーティリティ」を開いてその設定を開き、ファイルを抽出できる場所を変更します。また、アーカイブユーティリティcan.xipファイルを開きます。

0
FlashDrive284