How to force cp to overwrite without confirmation in Linux ?

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 ~/.bashrc or /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

OptionDescription
-fForce overwrite (ignored if -i is active via alias).
-r/-RCopy directories recursively.
-vVerbose mode (show copied files).

Best Practices

  1. Double-Check Paths: Forced overwrites are irreversible.
  2. Backup Critical Data: Use rsync or tar for backups instead of cp -f.
  3. Remove Alias Permanently (Optional):
    Edit ~/.bashrc or ~/.bash_aliases and remove/comment out alias cp='cp -i'.

Leave a Reply

Your email address will not be published. Required fields are marked *