1つのコマンドラインでcat、tar、gzipを使用して.tar.gzファイルを解凍する

1つのコマンドラインでcat、tar、gzipを使用して.tar.gzファイルを解凍する

1つのコマンドラインでcat、tar、およびgzipを使用して.tar.gzファイルを解凍してアーカイブを解放するにはどうすればよいですか?可能ですか?

ベストアンサー1

必要ないcatgzip:

$ tar xvzf archive.tar.gz

tar圧縮()フラグの後に詳細モード()でアーカイブを抽出()することを示すオプション文字列。xvzf

すべてを使うcattar そして gzip(これは愚かです。これをしないでください。):

$ cat archive.tar.gz | gzip -d -c | tar xvf -

または

$ gzip -d -c archive.tar.gz | cat | tar xvf -

-ファイル名で指定すると、tarアーカイブは標準入力から読み取られます。

最後の2つの例は、パイプラインの次の部分にデータを混在させることだけを残しているcatため、通常「無駄な使用」と呼ばれる問題が発生します。cat

以下のない少し良いバージョンcat

$ gzip -c -d archive.tar.gz | tar xvf -

実際にtar圧縮されたアーカイブを処理する方法がわからないシステムでこれを行う方法を知っておくと便利です。

上記で使用した古代オプション文字列(tar前にダッシュ()がない)は、ダッシュがコマンドラインオプションを指定するために通常使用される前のものです。-一般的なオプション構文を使用しない他のユーティリティにはありますddが、今日のほとんどの実装はmttar明らか最新のダッシュオプションはdd通常そうではありません。コマンドmt(テープジョブ制御)にはいくつかのダッシュオプション(特にLinuxでは)がありますが、コマンドラインで選択されていない唯一の部分は、まだドライブで実行したいコマンド(またはrewind)ですeof

おすすめ記事