curl
-o
/スイッチを使用して--output
URLを特定のファイルにダウンロードする機能。私が知っている限り、これはファイルを保存し、ダウンロードに問題がある場合はファイルを半分だけダウンロードします。
一時ファイルを作成してその場所に移動して、この問題を解決できました。
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
カールコマンドが失敗するとスクリプトは失敗します。mv
iffの実行にcurl
失敗しませんでした。
答え1
私が知る限り、curl
これに対する組み込み機能はありません。あなたの方法は(を使用してerrexit
)得ることができるほど素晴らしいです。設定に関係なく明示的に作成できます。
curl -o ${TEMP} https://example.com/files/results.zip &&
mv ${TEMP} /data/path/to/results/results.zip