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.
linux, cp, mv, overwrite, alias, rf, overwritten, piping, ll, ls, auto, rm, safeguard, update, upgrade, applications, etc, feature, bash, eg, execute, append, switches, transparently, automatically, user, noticing, entries, bashrc, doesn, aliases, functions, global, definitions, fi, requires, interaction, interactive,