Linuxで.tar.gzまたは.tar.bz2ファイルからファイルを抽出する方法
tarファイルは圧縮されたアーカイブです。UbuntuのようなLinuxディストリビューションを使用しているとき、またはmacOSでターミナルを使用しているときにも、頻繁に発生します。tarballとも呼ばれるtarファイルの内容を抽出(またはuntar)する方法は次のとおりです。
.tar.gzと.tar.bz2はどういう意味ですか?
.tar.gz
または.tar.bz2
拡張子を持つファイルは、圧縮アーカイブファイルです。.tar
拡張子だけのファイルは圧縮されていませんが、非常にまれです。
.tar
ファイルの拡張子の部分の略トンAPE ARニラ、およびこれらのファイルタイプの両方が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
ために、.tar.bz2
ファイルに使用したコマンドラインオプションは次のとおりです。
- -x:tarファイルからファイルを抽出して取得します。
- -v:詳細、抽出中のファイルを一覧表示します。
- -j:Bzip2、bzip2を使用してtarファイルを解凍します。
- -f:ファイル、tarで使用する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ファイルの内部を確認する
これまでのところ、私たちは信頼を飛躍させ、目に見えないファイルを抽出しました。飛躍する前に見たいと思うかもしれません。(リスト)オプションtar
を使用して、ファイルを抽出する前にファイルの内容を確認でき-t
ます。通常、less
コマンドを介して出力をパイプ処理すると便利です。
tar -tf ukulele_songs.tar.gz | もっと少なく
この-z
オプションを使用してファイルを一覧表示する必要がないことに注意してください。ファイルからファイルを抽出する-z
場合にのみ、オプションを追加する必要があります。同様に、ファイル内のファイルを一覧表示するオプションは必要ありません。.tar.gz
-j
tar.bz2
出力をスクロールすると、tarファイル内のすべてがUkulele Songsというディレクトリ内に保持されており、そのディレクトリ内にファイルやその他のディレクトリがあることがわかります。
Ukulele Songsディレクトリには、Random Songs、Ramones、Possiblesというディレクトリが含まれていることがわかります。
tarファイル内のディレクトリからすべてのファイルを抽出するには、次のコマンドを使用します。パスにはスペースがあるため、パスは引用符で囲まれていることに注意してください。
tar -xvzfukulele_songs.tar.gz「ウクレレソングス/ラモーンズ/」
単一のファイルを抽出するには、ファイルのパスと名前を指定します。
tar -xvzfukulele_songs.tar.gz「ウクレレソングス/023-MyBabe.odt」
ワイルドカードを使用して、選択したファイルを抽出できます。ワイルドカードは、*
任意の文字列を?
表し、任意の単一文字を表します。ワイルドカードを使用するには、--wildcards
オプションを使用する必要があります。
tar -xvz --wildcards -fukulele_songs.tar.gz「ウクレレソングス/可能性/ B *」
ディレクトリを抽出せずにファイルを抽出する
tarファイルのディレクトリ構造をハードドライブに再作成したくない場合は、この--strip-components
オプションを使用してください。この--strip-components
オプションには数値パラメータが必要です。数値は、無視するディレクトリのレベル数を表します。無視されたディレクトリからのファイルは引き続き抽出されますが、ディレクトリ構造はハードドライブに複製されません。
--strip-components=1
tarファイルの例で指定した場合、tarファイル内のUkuleleSongsの最上位ディレクトリはハードドライブに作成されません。そのディレクトリに抽出されたはずのファイルとディレクトリは、ターゲットディレクトリに抽出されます。
tar -xvzf ukulele_songs.tar.gz --strip-components = 1
サンプルのtarファイル内にネストされているディレクトリのレベルは2つだけです。したがって、を使用すると--strip-components=2
、すべてのファイルがターゲットディレクトリに抽出され、他のディレクトリは作成されません。
tar -xvzf ukulele_songs.tar.gz --strip-components = 2
Linuxのマニュアルページを見るとtar
、「コマンドラインオプションが最も多いコマンド」というタイトルの候補として適していることがわかります。ありがたいことに、私たちはからファイルを抽出できるように.tar.gz
し、tar.bz2
きめ細かい制御の良好な程度を持つファイル、我々は、これらのオプションの一握りを覚えておく必要があります。