This through me for a loop when I would do a cp -rf or mv -f nothing would get overwritten even if piping y or yes to the command.
Type alias and you'll see why:
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
The -i is a safeguard against messing things up but however does mess things up worse when you know what you're doing and trying to update or upgrade applications/files etc...
alias is a built-in feature of bash where you can have an alias eg. type a command and above it will actually execute a different command or append switches transparently and automatically with you the user seeing or noticing.
You can usually find alias entries in ~/.bashrc or if it doesn't exist in /etc/bashrc:
cat .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Solution
You can remove those aliases if you like because it really requires interaction to overwrite files based on those aliases and even piping yes/y to the answers has no impact since it is not truly interactive.