我們平時在 Linux 中使用 cp 命令時,當把文件從一個目錄複製到另一個目錄,且目錄中具有同名文件時,系統會提示輸入 y 來確認是否覆蓋同名文件。 如果文件少的話,也無關緊要,但文件多的話,要一個一個確認簡直太累了。更要命的是,即使我們加了 -rf 參數,還是會提示。 為什麼會這樣呢? 原因 原 ...
我們平時在 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'
這裡更推薦大家使用辦法一,因為命令簡單,而且還不會造成忘記恢復別名而帶來的風險。
以上就是本文的全部內容,如果覺得還不錯的話,歡迎點贊,轉發和關註,感謝支持。
推薦閱讀:
- 電腦經典必讀書籍
- 技術博客: 硬核後端開發技術乾貨,內容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。
- Go 程式員: Go 學習路線圖,包括基礎專欄,進階專欄,源碼閱讀,實戰開發,面試刷題,必讀書單等一系列資源。
- 面試題彙總: 包括 Python、Go、Redis、MySQL、Kafka、數據結構、演算法、編程、網路等各種常考題。