在redhat中cp覆蓋時,無論加什麼引數-f之類的還是提示是否覆蓋,這在編寫指令碼或者大量cp覆蓋操作的時候是不能忍受的。。。
做個試驗說明這個問題
建立乙個實驗環境:
[root@devdb ~]# mkdir -p test/1111
[root@devdb ~]# mkdir -p test/2222
[root@devdb ~]# touch test/1111/aaa.txt
目錄結構如下:
[root@devdb ~]# ls -r test/
test/:
1111 2222
test/1111:
aaa.txt
【注】test下有兩個資料夾1111,2222。1111中有個aaa.txt,現在要把aaa.txt拷貝到2222下。
第一次拷貝因為2222資料夾下沒有檔案,執行成功。
[root@devdb ~]# cp -r test/1111/aaa.txt test/2222/
[root@devdb ~]# cp -r test/1111/aaa.txt test/2222/
cp:是否覆蓋『test/2222/aaa.txt』?
[這是因為2222下已經有乙個aaa.txt了,看一下:
[root@devdb ~]# ls -r test/
test/:
1111 2222
test/1111:
aaa.txt
test/2222:
aaa.txt
要是大量檔案已經存在而且必須覆蓋,想要不提示該怎麼做呢?
[root@devdb ~]# cp -r -f test/1111/aaa.txt test/2222/
cp:是否覆蓋『test/2222/aaa.txt』?
加-f也不管用。。。
這是因為redhat給cp建了乙個alias:
[root@devdb ~]# 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 vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
當你執行cp時,其實執行的是cp -i
可以這樣解決
[root@devdb ~]# vi ~/.bashrc
在alias cp='cp -i'前加上"#"注釋掉這行,:wq!儲存推出
# .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重新登陸後生效
linux cp命令批量複製不提示方法
功能 複製檔案或目錄 說明 cp指令用於複製檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是乙個已經存在的目錄,則它會把前面指定的所有檔案或目錄複製到此目錄中。若同時指定多個檔案或目錄,而最後的目的地並非乙個已存在的目錄,則會出現錯誤資訊 引數 a 或 archive 此引數的效果和同時...
linux cp拷貝覆蓋不提示
linux cp拷貝覆蓋不提示 cp f 如果檔案存在則不提示,直接覆蓋。但是有時加了 f,怎麼還會有提示呢?原因是一些伺服器會預設增加別名alias cp cp i 當你執行cp時,其實執行的是cp i。root localhost alias alias cp cp i alias egrep ...
linux cp 直接覆蓋不提示資訊 解決方法
預設情況下,cp覆蓋時,無論加什麼引數 f 之類的 還是提示是否覆蓋。原因是 伺服器會預設增加別名 alias cp cp i 當你執行cp時,其實執行的是cp i。root ltt01 alias alias cp cp i alias egrep egrep color auto alias f...