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