web-dev-qa-db-ja.com

.tar.gzファイルを解凍/抽出するには、どのコマンドが必要ですか?

約800 mbの画像ファイルを含む巨大な.tar.gzファイルをクライアントから受信しました(非圧縮時)。当社のホスティング会社のftpは非常に遅いため、すべてのファイルをローカルで抽出してftpで送信することは実用的ではありません。 .tar.gzファイルをホスティングサイトにftpできましたが、ディレクトリにsshしてunzipを使用しようとすると、次のエラーが表示されます。

[esthers@clients locations]$ unzip community_images.tar.gz
Archive:  community_images.tar.gz
  End-of-central-directory signature not found.  Either this file is not a zipfile, or it constitutes one disk of a multi-part archive.  In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
note:  community_images.tar.gz may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.Zip, and cannot find community_images.tar.gz.Zip, period.

.tar.gzファイル内のすべてのファイルを抽出するには、どのコマンドを使用する必要がありますか?

811
EmmyS

詳細についてはman tarと入力してください。ただし、次のコマンドでトリックを実行できます。

tar -xvzf community_images.tar.gz

もう少し説明するために、tarはすべてのファイルを1つのパッケージcommunity_images.tarに収集しました。 gzipプログラムは圧縮を適用したため、gz拡張機能が使用されました。したがって、コマンドはいくつかのことを行います。

  • f:これはコマンドの最後のフラグでなければならず、tar f ileはその直後でなければなりません。 tarに圧縮ファイルの名前とパスを伝えます。
  • z:g z ipを使用してtarにアーカイブを解凍するよう指示します
  • x:tarはファイルを収集するか、e x tractすることができます。 xは後者を行います。
  • v:tarをたくさん話させます。 V erbose出力は、抽出されているすべてのファイルを表示します。
1354
djeikyb

ファイルを特定の宛先に抽出する場合は、-C /destination/path/を追加できます
最初にディレクトリを作成してください。この場合は〜/ Pictures/Community

例:

mkdir ~/Pictures/Community
tar xf community_images.tar.gz -C /home/emmys/Pictures/Community/

tar to e X tract a F ile

gif of process done at terminal

注:? + termを使用してmanページ内を検索し、nおよびNを使用して次のまたは前の用語のインスタンスに移動できることを忘れないでください探している。

167
JorgeArtware

ある時点でtarが自動解凍にアップグレードされました。あなたが今必要なのは:

tar xf community_images.tar.gz

同じ説明が適用されます。

  • f:これはコマンドの最後のフラグでなければならず、tar f ileはその直後でなければなりません。 tarに圧縮ファイルの名前とパスを伝えます。
  • x:e xファイルを抽出します。

コマンドフラグにハイフンがないことに注意してください。これは、tarのほとんどのバージョンがgnuとbsdの両方のスタイルオプションを許可しているためです(単純に、gnuにはハイフンが必要ですが、bsdではできません)。

106
djeikyb

tarのすべてのフラグを覚えるのは面倒です。必須のXKCD:

enter image description here

したがって、それを行うためにPythonで独自の小さなスクリプトを作成しました。クイック、ダーティ、cpのような使用法:

#!/usr/bin/env python3
import tarfile,sys,os
tf = tarfile.open(name=sys.argv[1],mode='r:gz')
where = '.'
if len(sys.argv) == 3:
    where = sys.argv[2]
tf.extractall(path=where)
tf.close()

次のように使用します。

myuntar.py archive.tar

同様の Zipアーカイブを解凍するためのスクリプト も参照してください。

10

素早い回答:

tar -xvf  <.tar file> or <.tar.xz file>
tar -xzvf <.tar.gz file>
tar -xjvf <.tar.bz2 file>

[NOTE]:

  • -v処理されたファイルを詳細にリストします。
  • -z gzipを使用してアーカイブをフィルタリングします。
  • -fアーカイブファイルまたはデバイスアーカイブを使用します。
  • -xアーカイブからファイルを抽出します。
  • -j bzip2。
  • tar -xf archive.tar#archive.tarからすべてのファイルを抽出します。
6
Benyamin Jafari

を使用して.tar.gzファイルを抽出できない場合

tar -xvzf fileName.tar.gz

を使用して抽出してみてください

tar xf fileName.tar.gz
4
Shravan40

最初のステップでもこれを行うことができます。

gunzip community_images.tar.gz

次に、ファイルがあります:community_images.tar

次のステップは次のとおりです。

tar -xvf community_images.tar

そして、*。tarファイルが抽出されます。

0
dschinn1001

tar xvf file.tar.gz

  • 抽出用のx
  • v冗長(リストファイル)
  • ファイル名のfはnext

Tarの最新バージョンは、アーカイブがgzip圧縮されていることを自動検出し、「z」を追加する必要があります。

0
delt