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
컬만 사용하여 하나의 명령으로 이 모든 작업을 수행할 수 있나요? 컬에는 "임시 파일에 저장하고 성공할 때만 이동"하는 옵션이 있습니까?
고쳐 쓰다:저는 이것을 자주 사용하기 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