To force the cp command to overwrite files without confirmation in Linux, use the -f (force) option. However, if your system has an alias for cp set to cp -i (interactive mode), you may need additional steps. Here’s a detailed guide:
1. Use -f or --force Flag
The -f flag forces overwriting without prompting, but it may not work if cp is aliased to cp -i.
cp -f source_file destination_file
Example:
cp -f /home/user/docs/report.txt /backup/report.txt
2. Bypass Aliases with \cp or Full Path
If your system has cp aliased to cp -i, use one of these methods to bypass the alias:
Method 1: Use \cp
\cp -f source_file destination_file
Method 2: Use the Full Path to cp
/bin/cp -f source_file destination_file
Example:
\cp -f /var/log/app.log /tmp/app.log
3. Override Alias Globally (Temporarily)
Unset the cp alias for the current session:
unalias cp # Remove alias for current shell session
cp -f source_file destination_file
4. Use yes Command for Interactive Prompts
If you must use the aliased cp -i, automate confirmation with yes:
yes | cp -i source_file destination_file
Example:
yes | cp -i *.jpg /media/user/photos/
Why Confirmation Happens
- Default Alias: Many systems define
alias cp='cp -i'in~/.bashrcor/etc/profile.d/to prevent accidental overwrites. - Check your aliases with:
alias cp
Examples
1. Overwrite a Single File
\cp -f /home/user/data.csv /backup/data.csv
2. Recursively Overwrite a Directory
/bin/cp -rf ~/projects /mnt/external_drive/
3. Overwrite Multiple Files
\cp -f report*.pdf /var/www/html/reports/
Key Options
| Option | Description |
|---|---|
-f | Force overwrite (ignored if -i is active via alias). |
-r/-R | Copy directories recursively. |
-v | Verbose mode (show copied files). |
Best Practices
- Double-Check Paths: Forced overwrites are irreversible.
- Backup Critical Data: Use
rsyncortarfor backups instead ofcp -f. - Remove Alias Permanently (Optional):
Edit~/.bashrcor~/.bash_aliasesand remove/comment outalias cp='cp -i'.