GNU Wget()を使用してダウンロードしたタールボール(.tar.gz
この場合はファイル)をパイプしたいのですが(明確ではない場合は解凍しました)方法がわかりません。私は試した:wget
tar -xzf
wget -q -O- ${SRC_URI} | tar -xzf > ${DESTDIR}
そして
wget -q -O- ${SRC_URI} | `tar -xzf` > ${DESTDIR}
そして
wget -q -O- ${SRC_URI} | 'tar -xzf' > ${DESTDIR}
私が望むことに近づく人は誰もいません。また、出力コンポーネントを省略し、デフォルト> ${DESTDIR}
でtarにtarballの内容を抽出させるようにしました。試みるたびに、通常、次のエラーが返されます。
tar: option requires an argument -- 'f'
タールボールをダウンロードする前に、または何もダウンロードせずにパスセットが作成されたかどうかを確認します${DESTDIR}
(タールを生成するためにタールを離れるため)。
ベストアンサー1
f
標準入力からtar.gzファイルを抽出する場合は、このオプションを指定する必要はありません。このオプションtar
は基本的に標準入力から読み取ることです。
コンテンツを$ DESTDIRに抽出するには、GNUtar
の-C
(ディレクトリの変更)オプションも使用する必要があります。
また、"
$ SRC_URIまたは$ DESTDIRにスペースやシェルメタ文字( - など)が含まれている場合は、変数の周りに引用符を付けました&
。*
?
最後に、{}
変数の周りの中かっこはここでは必ずしも必要ではありませんが、とにかくそのまま残しました。確かに何の害もありません。
これらすべてをまとめると、次のような結果が得られます。
wget -q -O- "${SRC_URI}" | tar -xz -C "${DESTDIR}"