重要なポイント
- Tar ファイルは、Ubuntu などの Linux ディストリビューションで使用される圧縮アーカイブです。これらは、ターミナルで tar コマンドを使用して抽出できます。
- .tar.gz および .tar.bz2 拡張子は、tar ファイルが gzip または bzip2 圧縮アルゴリズムを使用して圧縮されていることを示します。
- tar ファイルからファイルを抽出するには、tar コマンドにオプション -x、-v、および圧縮タイプに応じて -z (.gz) または -j (bz2) のいずれかを指定して使用します。抽出されたファイルは、-C オプションを使用して特定のディレクトリに送信できます。
Tar ファイルは圧縮されたアーカイブです。 Ubuntu などの Linux ディストリビューションを使用しているとき、または macOS でターミナルを使用しているときにも、このような問題が頻繁に発生します。ここでは、tar ファイル (tarball とも呼ばれる) の内容を抽出 (解凍) する方法を説明します。
.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
コマンド ライン オプションを使用するだけです。
この記事の内容はすべて、Windows 10 または Windows 11 内に Bash シェルをインストール できる Linux 用 Windows サブシステムでも機能することは注目に値します。ただし、 方法は他にもあります。
|
ファイルタイプ |
|
|
拡大 |
DAT ・ 7Z ・ ・ XML ・ RTF ・ XLSX ・ WEBP ・ EPUB ・ MP4 ・ M4A ・ AVI ・ MOBI ・ SVG ・ MP3 ・ REG ・ PHP ・ LOG ・ PPTX ・ PDF ・ MPEG ・ WMA ・ M4V ・ AZW ・ LIT ・ TAR ・ TAR.GZ ・ RAR |
Tar ファイルからのファイルの抽出
2 つの楽譜ファイルをダウンロードしたとします。 1 つのファイルは
ukulele_songs.tar.gz
と呼ばれ、もう 1 つは
guitar_songs.tar.bz2
と呼ばれます。これらのファイルは、ダウンロード ディレクトリにあります。
ウクレレの曲を抽出してみましょう (抽出の代わりに「アンター」と呼ばれることもあります)。
tar -xvzf ウクレレ_ソング.tar.gz
ファイルが抽出されると、ターミナル ウィンドウに一覧表示されます。
使用したコマンドライン オプションは次のとおりです。
- -x : tar ファイルからファイルを抽出して取得します。
- -v : 詳細、抽出されるファイルをリストします。
- -z : Gzip、gzip を使用して tar ファイルを解凍します。
-
-f
: File、
tarで使用する tar ファイルの名前。このオプションの後には tar ファイルの名前を指定する必要があります。
ls
でディレクトリ内のファイルを一覧表示すると、Ukulele Songs というディレクトリが作成されていることがわかります。抽出されたファイルはそのディレクトリにあります。このディレクトリはどこから来たのでしょうか?これは
tar
ファイルに含まれており、ファイルと一緒に抽出されました。
では、ギター曲を抽出してみましょう。これを行うには、前とほぼ同じコマンドを使用しますが、重要な違いが 1 つあります。
.bz2
拡張子接尾辞は、bzip2 コマンドを使用して圧縮されたことを示します。
-z
(gzip) オプションを使用する代わりに、
-j
(bzip2) オプションを使用して bz2 ファイルを解凍します。
tar -xvjf guitar_songs.tar.bz2
もう一度、ファイルが抽出されると、端末に一覧表示されます。明確にするために、
.tar.bz2
ファイルの
tar
で使用したコマンド ライン オプションは次のとおりです。
- -x : tar ファイルからファイルを抽出して取得します。
- -v : 詳細、抽出されるファイルをリストします。
- -j : Bzip2。bzip2 を使用して tar ファイルを解凍します。
- -f : ファイル、tar で使用する tar ファイルの名前。
Download ディレクトリ内のファイルをリストすると、Guitar Songs という別のディレクトリが作成されていることがわかります。
ファイルの抽出先の選択
現在のディレクトリ以外の場所にファイルを抽出する場合は、
-C
(指定されたディレクトリ) オプションを使用してターゲット ディレクトリを指定できます。
tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/
Documents/Songs ディレクトリを見ると、Guitar Songs ディレクトリが作成されていることがわかります。
ターゲット ディレクトリはすでに存在している必要があることに注意してください。存在しない場合、
tar
それを作成しません。ディレクトリを作成し、
tar
で 1 つのコマンドでファイルをそのディレクトリに抽出する必要がある場合は、次のように実行できます。
mkdir -p ~/ドキュメント/ソング/ダウンロード済み && tar -xvjf guitar_songs.tar.gz -C ~/ドキュメント/ソング/ダウンロード済み/
-p
(親) オプションを使用すると、
mkdir
必要な親ディレクトリを作成し、ターゲット ディレクトリが確実に作成されるようにします。
Tar ファイルを抽出する前に内部を確認する
ここまでは、思い切ってファイルを人目につかないように抽出してきました。飛びつく前に見てみるといいかもしれません。
-t
(リスト) オプションを使用すると、
tar
ファイルを抽出する前にその内容を確認できます。通常、
less
コマンドを使用して出力を
パイプする
と便利です。
tar -tf ウクレレ_ソング.tar.gz |少ない
ファイルを一覧表示するために
-z
オプションを使用する必要がないことに注意してください。
-z
オプションを追加する必要があるのは、
.tar.gz
ファイルからファイルを抽出する場合のみです。同様に、
tar.bz2
ファイル内のファイルを一覧表示するために
-j
オプションは必要ありません。
出力をスクロールすると、tar ファイル内のすべてが Ukulele Songs というディレクトリ内に保持されており、そのディレクトリ内にファイルやその他のディレクトリがあることがわかります。
Ukulele Songs ディレクトリには、Random Songs、Ramones、Possibles というディレクトリが含まれていることがわかります。
tar ファイル内のディレクトリからすべてのファイルを抽出するには、次のコマンドを使用します。パスにはスペースが含まれるため、パスは引用符で囲まれていることに注意してください。
tar -xvzf ukulele_songs.tar.gz "ウクレレソング/ラモーンズ/"
単一のファイルを抽出するには、ファイルのパスと名前を指定します。
tar -xvzf ukulele_songs.tar.gz "ウクレレソング/023 - My Babe.odt"
ワイルドカードを使用して、選択したファイルを抽出できます。
*
任意の文字列を表し、
?
任意の 1 文字を表します。ワイルドカードを使用するには、
--wildcards
オプションを使用する必要があります。
tar -xvz --wildcards -f ukulele_songs.tar.gz "ウクレレの曲/ポッシブル/B*"
ディレクトリを抽出せずにファイルを抽出する
tar ファイル内のディレクトリ構造をハード ドライブ上に再作成したくない場合は、
--strip-components
オプションを使用します。
--strip-components
オプションには数値パラメータが必要です。この数字は、無視するディレクトリのレベルを表します。無視されたディレクトリのファイルは引き続き抽出されますが、ディレクトリ構造はハード ドライブ上に複製されません。
サンプルの tar ファイルで
--strip-components=1
を指定すると、tar ファイル内の Ukulele Songs の最上位ディレクトリはハード ドライブ上に作成されません。そのディレクトリに抽出されるファイルとディレクトリは、ターゲット ディレクトリに抽出されます。
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
ファイルから適切に詳細に制御してファイルを抽出できるようにするには、これらのオプションをいくつか覚えておくだけで済みます。





