Linuxで.tar.gzまたは.tar.bz2ファイルからファイルを抽出する方法
公開: 2022-01-29tarファイルは圧縮されたアーカイブです。 UbuntuのようなLinuxディストリビューションを使用しているとき、またはmacOSでターミナルを使用しているときにも、頻繁に発生します。 tarファイル(tarballとも呼ばれます)のコンテンツを抽出(またはuntar)する方法は次のとおりです。
.tar.gzと.tar.bz2はどういう意味ですか?
拡張子が.tar.gz
または.tar.bz2
のファイルは、圧縮されたアーカイブファイルです。 拡張子が.tar
だけのファイルは圧縮されていませんが、非常にまれです。
ファイル拡張子の.tar
部分は、 t ape ar chiveの略であり、これらのファイルタイプの両方が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 -xvjfguitar_songs.tar.bz2
繰り返しになりますが、ファイルは抽出されるときに端末に一覧表示されます。 明確にするために、 .tar.bz2
ファイルのtar
で使用したコマンドラインオプションは次のとおりです。
- -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ファイルの内部を見る
これまでのところ、私たちは信頼を飛躍させ、目に見えないファイルを抽出しました。 飛躍する前に見たいと思うかもしれません。 -t
(list)オプションを使用して、 tar
ファイルを抽出する前にその内容を確認できます。 通常、 less
コマンドを使用して出力をパイプ処理すると便利です。
tar -tf ukulele_songs.tar.gz | 以下
ファイルを一覧表示するために-z
オプションを使用する必要がないことに注意してください。 .tar.gz
ファイルからファイルを抽出する場合にのみ、 -z
オプションを追加する必要があります。 同様に、 tar.bz2
ファイル内のファイルを一覧表示するために-j
オプションは必要ありません。
出力をスクロールすると、tarファイル内のすべてがUkulele Songsというディレクトリ内に保持されており、そのディレクトリ内にファイルやその他のディレクトリがあることがわかります。
Ukulele Songsディレクトリには、Random Songs、Ramones、Possiblesというディレクトリが含まれていることがわかります。
tarファイル内のディレクトリからすべてのファイルを抽出するには、次のコマンドを使用します。 パスにはスペースがあるため、パスは引用符で囲まれていることに注意してください。
tar -xvzfukulele_songs.tar.gz「ウクレレソングス/ラモーンズ/」
単一のファイルを抽出するには、ファイルのパスと名前を指定します。
tar -xvzfukulele_songs.tar.gz「ウクレレソングス/023-MyBabe.odt」
ワイルドカードを使用して、選択したファイルを抽出できます。ここで、 *
は任意の文字列を表し、 ?
任意の1文字を表します。 ワイルドカードを使用するには、 --wildcards
オプションを使用する必要があります。
tar -xvz --wildcards -fukulele_songs.tar.gz「ウクレレソングス/可能性/ B *」
ディレクトリを抽出せずにファイルを抽出する
tarファイルのディレクトリ構造をハードドライブに再作成したくない場合は、 --strip-components
オプションを使用します。 --strip-components
オプションには、数値パラメーターが必要です。 数値は、無視するディレクトリのレベル数を表します。 無視されたディレクトリからのファイルは引き続き抽出されますが、ディレクトリ構造はハードドライブに複製されません。
tarファイルの例で--strip-components=1
を指定すると、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
ファイルから適切な粒度でファイルを抽出できるようにするには、これらのオプションをいくつか覚えておくだけで済みます。
Linuxコマンド | ||
ファイル | tar・pv・cat・tac・chmod・grep・diff・sed・ar・man・pushd・popd・fsck・testdisk・seq・fd・pandoc・cd・$ PATH・awk・join・jq・fold・uniq・journalctl・tail・stat・ls・fstab・echo・less・chgrp・chown・rev・look・strings・type・rename・zip・unzip・mount・umount・install・fdisk・mkfs・rm・rmdir・rsync・df・gpg・vi・nano・mkdir・du・ln・patch・convert・rclone・shred・srm | |
プロセス | エイリアス・screen・top・nice・renice・progress・strace・systemd・tmux・chsh・history・at・batch・free・which・dmesg・chfn・usermod・ps・chroot・xargs・tty・pinky・lsof・vmstat・タイムアウト・wall・yes・kill・sleep・sudo・su・time・groupadd・usermod・groups・lshw・shutdown・reboot・halt・poweroff・passwd・lscpu・crontab・date・bg・fg | |
ネットワーキング | netstat・ping・traceroute・ip・ss・whois・fail2ban・bmon・dig・finger・nmap・ftp・curl・wget・who・whoami・w・iptables・ssh-keygen・ufw |
関連:開発者と愛好家のための最高のLinuxラップトップ