gzip: stdin: gunzip がパイプで使用されている場合、gzip 形式ではありません

gzip: stdin: gunzip がパイプで使用されている場合、gzip 形式ではありません

ファイルを次のように解凍します。

gunzip ファイル.gz

しかし、パイプで実行すると、エラーが返されます。

echo file.gz | gunzip
gzip: stdin: gzip 形式ではありません

ここで何が問題なのでしょうか? よろしくお願いします。

答え1

問題は、echo file.gz文字列「file.gz」をエコーするだけであることです。基本的に、コマンド間の違いは次のとおりです。

あなたが欲しいもの:

gunzip /path/to/directory/file.gz

エコーで何を伝えているのか:

gunzip "file.gz"

しかし、これも完全に正しいわけではありません。本当の違いは、ファイル file.gz送信するのは「ファイル.gz」

gunzipここでの本当の質問は、単に として使用するのではなく、なぜ にパイプしようとしているのかということですgunzip file.gz

echo file.gz | xargs gunzip編集:やってみるのも効果があるようです。

関連情報