cp 指令是在 Linux 上用來複制檔案的指令,不管是複制單個檔案,還是整個檔案夾複制,都可以用 cp 指令實作。有時候我們需要用新的檔案覆寫舊的檔案,并且希望指令不提示 Y/N 而是直接覆寫,就可以用 -f 直接覆寫。但是今天老王遇到一個問題,cp 指令加了 -f 後依然提示覆寫,這裡分享下原因和解決辦法。
一、cp 指令
例如我們需要将目前檔案下的 install.sh 檔案複制到 /root/scripts 目錄下:
cp install.sh /root/scripts/
如果我們 /root/scripts 已經有了一個 install.sh 了,那麼 Linux 就會提示問我們是否覆寫“install.sh”,可以輸入 y 确認覆寫,或者 n 取消覆寫。如果隻有一個檔案還好,但是如果有很多個檔案,那麼就很麻煩了。這個時候就可以使用 -f 不提示直接覆寫:
cp -f install.sh /root/scripts/
二、cp -f 之後依然提示覆寫
今天老王在用 cp 指令時,加了 -f,依然會提示是否需要覆寫,後來發現是 Linux 上别名設定的問題,輸入 alias 傳回如下:
alias cp='cp -i'
也就是說當你執行 cp 時,其實執行的是 cp –i。
解決辦法:
方法一:修改 ~/.bashrc 檔案禁用掉 cp 的 alias
即在 alias cp='cp -i' 前加上“#”注釋,重新登入即可實作複制不提示
方法二:直接輸入指令即可實作,用 \cp 代替 cp:
\cp -f install.sh /root/scripts/