Linuxで.tar.gzまたは.tar.bz2ファイルからファイルを抽出する方法

  • Dave McKay

    @TheGurkha

  • 2019年4月5日、午前8時EDT
Fatmawati Achmad Zaenuri / .com

tarファイルは圧縮されたアーカイブです。 UbuntuなどのLinuxディストリビューションを使用しているとき、またはmacOSでターミナルを使用しているときにも、頻繁に発生します。 tarファイル(tarballとも呼ばれます)のコンテンツを抽出(またはuntar)する方法は次のとおりです。

.tar.gzおよび.tar.bz2とはどういう意味ですか?

ファイル.tar.gzまたは.tar.bz2拡張子を持つものは圧縮アーカイブファイルです。 .tar拡張子のみのファイルは圧縮されていませんが、非常にまれです。

.tarの部分ファイル拡張子はテープアーカイブの略であり、これらのファイルタイプの両方がtarファイルと呼ばれる理由です。 tarファイルは、システム管理者がファイルをテープにアーカイブできるようにするためにtarコマンドが作成された1979年までさかのぼります。 40年経った今でも、tarコマンドを使用してtarファイルをハードドライブに抽出しています。誰かがまだテープでtarを使用している可能性があります。

広告

.gzまたは.bz2拡張サフィックスは、gzipまたはbzip2のいずれかを使用してアーカイブが圧縮されたことを示します。圧縮アルゴリズム。 tarコマンドは、両方のタイプのファイルで問題なく機能するため、どちらの圧縮方法を使用したかは関係ありません。Bashシェルがあるすべての場所で使用できるはずです。適切なtarコマンドラインオプションを使用する必要があります。

Tarファイルからのファイルの抽出

2つのファイルをダウンロードしたとします。楽譜の。 1つのファイルはukulele_songs.tar.gzと呼ばれ、もう1つのファイルはguitar_songs.tar.bz2と呼ばれます。これらのファイルはダウンロードディレクトリにあります。

ウクレレの曲を抽出しましょう:

tar -xvzf ukulele_songs.tar.gz 

ファイルが抽出されると、次のファイルに一覧表示されます。ターミナルウィンドウ。

使用したコマンドラインオプションは次のとおりです。

  • -x:tarファイルからファイルを抽出して取得します。
  • – v:詳細、抽出中のファイルを一覧表示します。
  • -z:Gzip、gzipを使用してtarファイルを解凍します。
  • -f:ファイル、tarの名前tarで使用するファイル。このオプションの後には、tarファイルの名前を続ける必要があります。

lsを使用してディレクトリ内のファイルを一覧表示すると、次のように表示されます。 UkuleleSongsというディレクトリが作成されました。抽出されたファイルはそのディレクトリにあります。このディレクトリはどこから来たのですか? tarファイルに含まれており、ファイルと一緒に抽出されました。

広告

では、ギターの曲を抽出しましょう。これを行うには、以前とほぼ同じコマンドを使用しますが、重要な違いが1つあります。 .bz2拡張子のサフィックスは、bzip2コマンドを使用して圧縮されたことを示します。 -z(gzip)オプションを使用する代わりに、-j(bzip2)オプションを使用します。

tar -xvjf guitar_songs.tar.bz2

もう一度、ファイルは抽出されるときに端末に一覧表示されます。明確にするために、.tar.bz2ファイルのtarで使用したコマンドラインオプションは次のとおりです。

リストする場合ダウンロードディレクトリ内のファイルには、GuitarSongsという別のディレクトリが作成されていることがわかります。

ファイルの抽出先の選択

ファイルを特定の場所に抽出する場合現在のディレクトリ以外に、-C(指定されたディレクトリ)オプションを使用してターゲットディレクトリを指定できます。

tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/
広告

Documents / Songsディレクトリを見ると、GuitarSongsディレクトリが作成されていることがわかります。

ターゲットディレクトリがすでに存在している必要があります。tarが存在しない場合、作成されません。ディレクトリを作成し、tarにファイルをすべて1つのコマンドで抽出させる必要がある場合は、次のように実行できます。

mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/

-p(親)オプションを使用すると、mkdirで必要な親ディレクトリが作成され、ターゲットディレクトリが確保されます。

抽出する前にtarファイルの内部を確認する

これまでのところ、信頼を飛躍させ、目に見えないファイルを抽出しました。飛躍する前に見たいと思うかもしれません。 -t(リスト)オプションを使用して、抽出する前にtarファイルの内容を確認できます。通常、出力をlessコマンドでパイプ処理すると便利です。

tar -tf ukulele_songs.tar.gz | less
アドバタイズメント

ファイルを一覧表示するために-zオプションを使用する必要がないことに注意してください。 .tar.gzファイルからファイルを抽出する場合にのみ、-zオプションを追加する必要があります。同様に、tar.bz2ファイル内のファイルを一覧表示するために-jオプションは必要ありません。

スクロール出力では、tarファイル内のすべてがUkulele Songsというディレクトリ内に保持されており、そのディレクトリ内にファイルやその他のディレクトリがあります。

UkuleleSongsディレクトリには次のディレクトリが含まれていることがわかります。ランダムな曲、ラモーン、可能性。

tarファイル内のディレクトリからすべてのファイルを抽出するには、次のコマンドを使用します。パスにはスペースがあるため、パスは引用符で囲まれていることに注意してください。

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/Ramones/"
広告

単一のファイルを抽出するには、ファイルのパスと名前を指定します。

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/023 - My Babe.odt"

ワイルドカードを使用して、選択したファイルを抽出できます。ここで、*は任意の文字列を表し、?は任意の単一文字を表します。ワイルドカードを使用するには、--wildcardsオプションを使用する必要があります。

tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/B*"

ディレクトリを抽出せずにファイルを抽出する

tarファイルのディレクトリ構造をハードドライブに再作成したくない場合は、--strip-componentsオプションを使用します。 --strip-componentsオプションには数値パラメーターが必要です。数値は、無視するディレクトリのレベル数を表します。無視されたディレクトリからのファイルは引き続き抽出されますが、ディレクトリ構造はハードドライブに複製されません。

例のtarファイルで--strip-components=1を指定すると、 tarファイル内のUkuleleSongsの最上位ディレクトリはハードドライブに作成されません。そのディレクトリに抽出されたはずのファイルとディレクトリは、ターゲットディレクトリに抽出されます。

tar -xvzf ukulele_songs.tar.gz --strip-components=1
アドバタイズメント

2つしかありませんサンプルのtarファイル内にネストされているディレクトリのレベル。したがって、--strip-components=2を使用すると、すべてのファイルがターゲットディレクトリに抽出され、他のディレクトリは作成されません。

tar -xvzf ukulele_songs.tar.gz --strip-components=2

Linuxのマニュアルページを見ると、tarが「コマンドラインオプションが最も多いコマンド」というタイトルの候補として適していることがわかります。ありがたいことに、.tar.gzファイルとtar.bz2ファイルから適切な粒度でファイルを抽出できるようにするには、ほんの一握りを覚えておく必要があります

Dave McKay
Dave McKayは、紙テープが流行したときに最初にコンピューターを使用し、それ以来プログラミングを続けています。 。IT業界で30年以上勤務した後、現在はフルタイムのテクノロジージャーナリストです。彼のキャリアの間、彼はフリーランスプログラマー、国際ソフトウェア開発チームのマネージャー、ITサービスプロジェクトマネージャー、そして最近ではITサービスプロジェクトマネージャーとして働いてきました。 、データ保護責任者として。デイブはLinuxのエバンジェリストであり、オープンソースの提唱者です。フルバイオを読む “

Leave a Reply

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です