LINUX CP 複製不提示的解決方法

2021-05-24 21:44:45 字數 1646 閱讀 9886

在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...