我們平時在 Linux 中使用 cp 命令時,當把文件從一個目錄復制到另一個目錄,且目錄中具有同名文件時,系統(tǒng)會提示輸入 y 來確認是否覆蓋同名文件。
如果文件少的話,也無關(guān)緊要,但文件多的話,要一個一個確認簡直太累了。更要命的是,即使我們加了 -rf 參數(shù),還是會提示。
為什么會這樣呢?
原因
原因就是 cp 命令被系統(tǒng)設(shè)置了別名。
我們可以查看一下:
[[email protected]]# aliasalias 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 參數(shù)是什么意思呢?
[[email protected]]# cp --help-i, --interactive prompt before overwrite (overrides a previous -n option)
就是在覆蓋之前會給一個提示,這應該算是系統(tǒng)的一個保險措施。
那如果希望進行強制復制,不想一個一個輸入 y,有什么辦法呢?
解決辦法一
使用原生命令:
[[email protected]]# /bin/cp -rf xxx
解決辦法二
取消別名:
[[email protected]]# unalias cp
這樣再使用 cp -rf 的時候就不會提示確認了。
但需要注意的是,使用完之后記得把別名恢復。
[[email protected]]# alias cp='cp -i'
這里更推薦大家使用辦法一,因為命令簡單,而且還不會造成忘記恢復別名而帶來的風險。
以上就是本文的全部內(nèi)容,如果覺得還不錯的話,歡迎點贊,轉(zhuǎn)發(fā)和關(guān)注,感謝支持。
推薦閱讀:
計算機經(jīng)典必讀書籍技術(shù)博客: 硬核后端開發(fā)技術(shù)干貨,內(nèi)容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。Go 程序員: Go 學習路線圖,包括基礎(chǔ)專欄,進階專欄,源碼閱讀,實戰(zhàn)開發(fā),面試刷題,必讀書單等一系列資源。面試題匯總: 包括 Python、Go、Redis、MySQL、Kafka、數(shù)據(jù)結(jié)構(gòu)、算法、編程、網(wǎng)絡等各種??碱}。