カールを使用して一時ファイルに保存し、成功した場合にのみ所定の位置に移動します。

カールを使用して一時ファイルに保存し、成功した場合にのみ所定の位置に移動します。

curl-o/スイッチを使用して--outputURLを特定のファイルにダウンロードする機能。私が知っている限り、これはファイルを保存し、ダウンロードに問題がある場合はファイルを半分だけダウンロードします。

一時ファイルを作成してその場所に移動して、この問題を解決できました。

TEMP=$(mktemp -p /data/path/to/results/ tmp.results.zip.XXXXXX)
curl -o ${TEMP} https://example.com/files/results.zip
mv ${TEMP} /data/path/to/results/results.zip

カールだけを使用して1つのコマンドでこれらすべてを実行できますか?カールには、「一時ファイルに保存して成功した場合にのみ移動」するオプションはありますか?

修正する:私はこれをよく使うので、set -o errexitカールコマンドが失敗するとスクリプトは失敗します。mviffの実行にcurl失敗しませんでした。

答え1

私が知る限り、curlこれに対する組み込み機能はありません。あなたの方法は(を使用してerrexit)得ることができるほど素晴らしいです。設定に関係なく明示的に作成できます。

curl -o ${TEMP} https://example.com/files/results.zip &&
mv ${TEMP} /data/path/to/results/results.zip

関連情報