Is it familiar? This annoying confirmation prompt appears on certain linux distribution when you try to copy a file that already exists at the destination. Even if you try to use the -f (force) switch with the command that doesn't make any difference, the prompt still appears!
Here's how to solve this one and for all.
Why do I get the overwrite confirmation prompt?
This confirmation prompt issue happens only on specific Linux distributions, not on all of them. Debian, Ubuntu based Linux installations will overwrite the destination files for you happily, without asking for your approval.
Red Hat, CentOS based boxes however all suffer from this behavior.
The reason is that in RHEL systems an alias is set by default, that makes cp run in interactive mode.
How to force cp to overwrite files?
1. Use the 'yes' string piped out to the cp command
yes | cp AlreadyThere.txt /tmp/
2. Put a '\' in front of the cp command to let the shell know you want to run the command itself, not the alias.
\cp AlreadyThere.txt /tmp/
3. Remove the alias temporarily from your session, and use the cp command normally until you log out
unalias cp cp AlreadyThere.txt /tmp/
How to permanently fix the issue?
If you want your system to automatically overwrite files at the destination, you need to either change, or remove the alias.
Open the hidden .bashrc file in your home directory for editing, and simply comment out the line where the alias for cp is defined.
vim ~/.bashrc
Save your work with ':wq'.
Next time you log into the machine, the cp command will behave exactly as you want it to.
Comments