![파일이 로컬에 이미 존재하는 경우 컬을 사용하여 파일을 다운로드하지 마십시오.](https://linux55.com/image/127112/%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EB%A1%9C%EC%BB%AC%EC%97%90%20%EC%9D%B4%EB%AF%B8%20%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94%20%EA%B2%BD%EC%9A%B0%20%EC%BB%AC%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C%ED%95%98%EC%A7%80%20%EB%A7%88%EC%8B%AD%EC%8B%9C%EC%98%A4..png)
나는 현재 컬을 사용하여 이 작업을 수행하고 있습니다.
curl https://example.com/file -o file
내 디렉토리에 이름의 파일이 이미 있는 경우 file
이 명령은 해당 파일을 덮어씁니다. 대신 파일이 이미 존재한다는 오류 메시지가 반환되기를 원합니다.
컬만 사용해서 이런 작업을 할 수 있나요? 이 작업을 수행하는 플래그가 표시되지 않고 bash 스크립트에서 명령을 실행하지 않으므로 명령을 실행하기 전에 비교 연산자를 사용할 수 없습니다.
답변1
다음 테스트를 사용하여 디렉터리에 이름이 있는지 테스트할 수 있습니다 -e
.
if [ -e "filename" ]; then
echo 'File already exists' >&2
exit 1
fi
curl -o "filename" "URL"
이 시점에서 스크립트를 종료하지 않으려면 다음을 수행하세요.
if [ -e "filename" ]; then
echo 'File already exists' >&2
else
curl -o "filename" "URL"
fi
이름이 일반 파일, 디렉터리, 명명된 파이프 또는 기타 유형의 파일 시스템 개체 이름인지 여부에 관계없이 이름이 존재하는 경우 테스트는 참입니다.
시스템을 확인하십시오 man test
.
답변2
확인해 보시는 것을 적극 권장합니다이 답변-C -
컬 옵션 에 관해서 . 기본적으로 다운로드를 재개합니다. 파일이 이미 완료된 경우 별도의 조치가 필요하지 않습니다. 복구 확인을 수행하기 위해 서버를 호출합니다.