Linux 使用 cp 命令強制覆蓋功能
我們平時在 Linux 中使用 cp 命令時,當把文件從一個目錄復制到另一個目錄,且目錄中具有同名文件時,系統會提示輸入 y 來確認是否覆蓋同名文件。
如果文件少的話,也無關緊要,但文件多的話,要一個一個確認簡直太累了。更要命的是,即使我們加了 -rf 參數,還是會提示。
為什么會這樣呢?
原因
原因就是 cp 命令被系統設置了別名。
我們可以查看一下:
[root@localhost]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
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'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
也就是說,我們平時使用的 cp 命令,實際上是 cp -i。
那 -i 參數是什么意思呢?
[root@localhost]# cp --help
-i, --interactive prompt before overwrite (overrides a previous -n
option)
就是在覆蓋之前會給一個提示,這應該算是系統的一個保險措施。
那如果希望進行強制復制,不想一個一個輸入 y,有什么辦法呢?
解決辦法一
使用原生命令:
[root@localhost]# /bin/cp -rf xxx
解決辦法二
取消別名:
[root@localhost]# unalias cp
這樣再使用 cp -rf 的時候就不會提示確認了。
但需要注意的是,使用完之后記得把別名恢復。
[root@localhost]# alias cp='cp -i'
這里更推薦大家使用辦法一,因為命令簡單,而且還不會造成忘記恢復別名而帶來的風險。
以上就是本文的全部內容,如果覺得還不錯的話,歡迎點贊,轉發和關注,感謝支持。
推薦閱讀:

浙公網安備 33010602011771號