stdinをtarにパイプするのに問題があります。

stdinをtarにパイプするのに問題があります。

Google Cloud Storageバケットのデータ(複数のファイルとディレクトリ)をローカルディスクのTarアーカイブに書き込む必要があります。ディレクトリサイズは複数のテラバイトなので、ディスクにTarアーカイブを作成してコピーしたくありません。

私の現在の戦略は、gsutil(クラウドストアからコピーするためのGoogleのPythonユーティリティ)を使用してそれをtarにパイプすることです。次のコマンドを使用して単一のテキストファイルでテストしました。

gsutil cp gs://data/myfile.txt - | tar -czvf myfile.tar.gz -T -

私が経験している問題は、シェルがテキストファイルの実際の内容を拡張し、テキストファイルをtarに引数として渡そうとするようです。次のエラーメッセージが表示されます。

'ar: unrecognized option '---- BASELINE

私のテキストファイルに "---- BASELINE"行が含まれているので、シェルがテキストファイルの入力を拡張しようとしているようです。いくつかのところに二重引用符を追加してみましたが、私は知りませんでした。

ありがとうございます!

関連情報