Resume an Interrupted Download with curl -C -
curl can pick up where a failed transfer left off by sizing the existing output file.
Re-run the same command with `curl -C - -O <url>`; the dash in `-C -` makes curl infer the resume offset from the partial file.
01Command
Command
$ curl -C - -L -O https://example.com/big-file.iso
# Resume with a manual output name:
curl -C - -L -o big-file.iso https://example.com/big-file.iso02What it does
`-C -` tells curl to look at the output file already on disk and send a Range request from that byte onward — servers that support ranges continue seamlessly, and curl reports `HTTP 416` when the file is already complete. Combine with `-L` to follow redirects and `-O` to reuse the remote filename, or `-o name` to choose your own. This is the standard fix when a 5 GB download dies at 80%.
03Risk
!Warning: If the server ignores Range headers, `-C -` restarts or errors rather than resuming — check the first line of curl's progress output.
04Undo
✓No undo needed — this command does not change persistent state.
05Sources
- curl — macOS Command ReferenceEvidence: Documents the -C - (auto-resume) and -O/-o output flags.
- Downloads — everything curlEvidence: Explains how -C - infers the resume offset from the existing output file.
Last verified: 2026-09-17 · Category: Network