1. 程式人生 > >centos 使用 CP 命令 不提示 覆蓋

centos 使用 CP 命令 不提示 覆蓋

home define blank microsoft 輸入 base bin 文件 vertica

今天 在我的VPS上拷一個目錄,但放的地方有一個同名目錄並且裏面還有文件。如是直接拷過去,結果有N個要確認替換的提示,直接CTRL+C,在網上搜了把,發現有幾個方法能夠解決,方法例如以下:

一般我們使用的命令是cp -rf sourcefile targetdir或cp -r -f sourcefile targetdir,

-r的意思是遞歸復制,也就是復制目錄及其下全部文件

-f的意思是遇到同名的文件,不提示,直接覆蓋

但為什麽我們用這兩個參數,系統還是會提示覆蓋呢?

這是由於。系統在安裝的時候使用了別名,防止我們誤操作,覆蓋了不該覆蓋的文件。使用別名命令就能夠看到詳細的配置了。

[[email protected] home]# alias
alias cp=‘cp -i‘
alias l.=‘ls -d .* --color=tty‘
alias ll=‘ls -l --color=tty‘
alias ls=‘ls --color=tty‘
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”命令,

也就是無論我們怎麽輸入 cp -rf,事實上運行的是 cp -i -rf , 也無怪乎總是提問是否覆蓋了。

從上邊的命令我們能夠知道,其它幾個命令,也使用了別名。比如ll,ls mv,rm等。

那麽怎樣解決問題呢?

[[email protected] home]# vi ~/.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
僅僅要在對應的命令前加#號,就能夠凝視掉該命令了。

保存退出,然後你就能夠用純粹的原命令了。

事實上另一種更簡單的方法能夠解決問題,就是在cp前加一個反斜杠如: \cp -f file dir 就能夠了!

centos 使用 CP 命令 不提示 覆蓋