ウェブサイト検索

1 つのコマンドで tar ファイルをダウンロードして抽出する方法


Tar (テープ アーカイブ) は、Linux でよく使用されるファイル アーカイブ形式です。圧縮には gzip (tar.gz) または bzip2 (tar.bz2) と併用できます。これは、マシンから別のマシンに、またはネットワーク経由で簡単に転送できる圧縮アーカイブ ファイル (パッケージ、ソース コード、データベースなど) を作成するために最も広く使用されているコマンド ライン ユーティリティです。

こちらもお読みください: Linux での 18 の Tar コマンドの例

この記事では、2 つのよく知られたコマンド ライン ダウンローダー、wget またはcURL を使用して tar アーカイブをダウンロードし、1 つのコマンドで解凍する方法を説明します。

Wget コマンドを使用してファイルをダウンロードして抽出する方法

以下の例は、最新の GeoLite2 Country データベース (GeoIP Nginx モジュールで使用) を現在のディレクトリにダウンロードして解凍する方法を示しています。

wget -c http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz -O - | tar -xz

wget オプション -O は、ドキュメントが書き込まれるファイルを指定します。ここでは - を使用します。これは、ファイルが標準出力に書き込まれ、tar および tar フラグにパイプされることを意味します。 -x はアーカイブ ファイルの抽出を有効にし、-z は gzip で作成された圧縮アーカイブ ファイルを解凍します。

tar ファイルを特定のディレクトリ (この場合は /etc/nginx/) に抽出するには、次のように -C フラグを使用します。

: root 権限が必要な特定のディレクトリにファイルを抽出する場合は、sudo コマンドを使用して tar を実行します。

sudo wget -c http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz -O - | sudo tar -xz -C /etc/nginx/

あるいは、次のコマンドを使用することもできます。ここでは、アーカイブ ファイルが解凍される前にシステムにダウンロードされます。

sudo wget -c http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz && tar -xzf  GeoLite2-Country.tar.gz

圧縮アーカイブ ファイルを特定のディレクトリに抽出するには、次のコマンドを使用します。

sudo wget -c http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz && sudo tar -xzf  GeoLite2-Country.tar.gz -C /etc/nginx/

cURL コマンドを使用してファイルをダウンロードして抽出する方法

前の例を考慮すると、これは cURL を使用して現在の作業ディレクトリにアーカイブをダウンロードして解凍する方法です。

sudo curl http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz | tar -xz 

ダウンロード中にファイルを別のディレクトリに抽出するには、次のコマンドを使用します。

sudo curl http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz | sudo tar -xz  -C /etc/nginx/
OR
sudo curl http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz && sudo tar -xzf GeoLite2-Country.tar.gz -C /etc/nginx/

それだけです!この短いですが便利なガイドでは、単一のコマンドでアーカイブ ファイルをダウンロードして抽出する方法を説明しました。ご質問がある場合は、以下のコメントセクションを使用してご連絡ください。