1つのコマンドラインでcat、tar、gzipを使用して.tar.gzファイルを解凍およびアーカイブ解除するにはどうすればよいですか?これも可能ですか?
cat
またはgzip
は必要ありません:
$ tar xvzf archive.tar.gz
オプション文字列は、tar
に、x
に続く圧縮(v
)アーカイブを冗長モード(z
)で抽出(f
)するように指示します。国旗。
cat
、tar
および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
とmt
が含まれますが、今日のtar
のほとんどの実装は理解しています新しいダッシュオプション、dd
は通常そうではありません。 mt
コマンド(磁気テープの操作を制御する)は、いくつかのダッシュオプション(特にLinuxの場合)を取得しましたが、コマンドラインのオプションではない部分は、コマンドラインで実行するコマンドだけです。 rewind
やeof
などのドライブ。