What Is the Purpose of the No-Clobber Option in wget?

The wget command-line utility is a powerful tool for downloading files from the web, but running it repeatedly in the same directory can lead to unintended file overwrites. The no-clobber option, invoked using -nc or --no-clobber, prevents wget from overwriting or destroying existing local files when downloading resources with identical names. Instead of replacing the current file or creating a duplicate with a modified suffix, this option instructs the utility to skip the download entirely if a file with the exact same name already exists in the destination folder.

Preventing Accidental Data Overwrite

By default, if you download a file named report.pdf twice, wget will preserve the original file and save the new download as report.pdf.1. However, certain combinations of settings or specific server configurations can cause standard download tools to overwrite data. The primary purpose of -nc is to act as a safety mechanism. When the no-clobber option is active, wget checks the local directory before initiating a network request; if a file matches the target filename, the program safely bypasses that specific download, preserving your existing data and saving bandwidth.

Behavior During Routine and Recursive Downloads

The impact of the no-clobber option varies slightly depending on whether you are downloading a single file or conducting a recursive directory download:

Key Differences: No-Clobber vs. Timestamping

It is common to confuse the no-clobber option with the timestamping option (-N). While both prevent unnecessary overwrites, they operate on different logic:

Option Command Functional Behavior Best Used For
No-Clobber wget -nc Checks only if the filename exists. If it does, the download is skipped immediately, regardless of file age or size. Protecting static files and saving maximum bandwidth on known assets.
Timestamping wget -N Examines the remote file’s modification date. It overwrites the local file only if the server’s version is newer. Syncing dynamic content or updating local backups with the latest versions.

Using the no-clobber option provides a predictable, strict restriction that ensures your local workspace remains completely unaltered by incoming web data.