私は-xfz
、gzipおよびbzip2アーカイブを処理するフラグを使用してtarballを抽出することに慣れています。
最近、.tar.xz
ファイルに遭遇しましたが、を使用して1ステップで解凍したいのtar
ですが、どうすればよいですか?
tar --help
tar
フラグをリストします。 -xzf
に適用されgzip
ます。 -xjf
へbz2
。 -xJf
へxz
。
私は-xfz
、gzipおよびbzip2アーカイブを処理するフラグを使用してtarballを抽出することに慣れています。
最近、.tar.xz
ファイルに遭遇しましたが、を使用して1ステップで解凍したいのtar
ですが、どうすればよいですか?
tar --help
tar
フラグをリストします。 -xzf
に適用されgzip
ます。 -xjf
へbz2
。 -xJf
へxz
。
回答:
Ubuntuには、GNU tarが含まれています。GNUtarは、フォーマットを単独で認識します。1つのコマンドは、マニュアルごとに、サポートされている圧縮方法で機能します。
tar xf archive.tar.xz
tar xf archive.tar.gz
tar xf archive.tar
など。tarでCannot exec
エラーが発生した場合は、sudo apt install xz-utils
最初に行う必要があります。
tar: xz: Cannot exec: No such file or directory
、インストールxz-utils
:sudo apt-get install xz-utils
tar
特定のフラグは不要になりましたか?
試してみる
tar -xJf file.pkg.tar.xz
-J
特に.xzファイルを扱うフラグです。
.xz
何らかの理由でtar
ソリューションが機能しない場合(おそらくOS Xビルトインを使用しているため)、これを試してください:
unxz < file.tar.xz > file.tar
…これは以下と同等です:
xz -dc < file.tar.xz > file.tar
次に、を使用tar
してファイルを展開します。
unxz < file.tar.xz | tar x
や似ていると感じています。
tar xf
はなかった。ubuntu 12.04
unxz
と等価ではないxz -dc
が、それにxz -d
。だから抽出file.tar.xz
するためにfile.tar
、あなたは単に書くだろうunxz file.tar.xz
。に相当するものが必要な場合はxz -dc
、標準出力に解凍して、を使用しますxzcat
。たとえばxzcat file.tar.xz | tar x
。
xzはロスレスデータコンプレッサーです。xzからtarボールを抽出してから、tarを抽出する必要があります。
unxz my_archive.tar.xz # results in my_archive.tar
次に、タールを抽出することを知っています
tar -xf my_archive.tar
xz
stdoutリダイレクトは必要ありません。さらに良い:unxz -k
うわー、それは本当に良いものです。Macで7zipを使用して行われましたか?これを試して:
7z x -so file.tar.xz | tar xf -
tar J
=なのでtar xz
、tar xzf file.tar.xz
"normal"のように書くことさえできtar xvfz file.tar.gz
ます。基本的に違いはありません。スイッチを使用する前にダッシュは必要ありません。
UbuntuにはPython(Python 2.7およびPython 3)が付属しており、アーカイブの抽出に必要なモジュールが含まれています。したがって、何らかの理由でtar
コマンドが欠落している場合(たとえば、システム管理者がコマンドを削除し、sudo
インストールする特権がない場合)、次のコマンドを使用できます。
python3 -c 'import tarfile,sys; b = tarfile.open(sys.argv[1]);print(b.extractall())' ./archive.xz
短いスクリプトとして、次のように読みやすくなります。
#!/usr/bin/env python3
import tarfile,sys
with tarfile.open( sys.argv[1] ) as fd:
fd.extractall()
で.xz
ファイルを作成したとしますtar cJf thing.xz /etc/passwd
。アーカイブにはetc
、passwd
ファイルが含まれるディレクトリが含まれます。上記のスクリプトを使用するetc
と、現在の作業ディレクトリにディレクトリが作成され、その中にpasswd
ファイルが作成されます。もちろん、これはextractall()
関数内で抽出したいパスを指定することでいつでも拡張できます。
unar
7zやRARを含むほとんどすべてのフォーマットを展開するための、とても素敵なシンプルなプログラムで入力しやすい
(GNU)Objective-Cで記述されているようで、いくつかのgnustep
(GNUのObjective-C実装)ライブラリのインストールが必要です(gnustep-base-runtime
および libgnustep-base1.25
)
--install-suggestsを使用する場合、またはapt
推奨パッケージをインストールするように設定してunar
いる場合は、必要なものではない多くのGUI GNUStepプログラムを推奨およびインストールします
sudo apt install --no-install-suggests unar
unar linux-source.tar.xz
出力ディレクトリがlinux-source
自動的に作成されます。
xz-utils
まだ存在しない場合はインストールする必要があることに注意してください