cp命令是我日常學(xué)習(xí)中經(jīng)常會遇到的一個命令,下面這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)利用cp命令實現(xiàn)強(qiáng)制覆蓋功能的方法,并且給大家簡單的介紹了cp命令的基礎(chǔ)知識,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、做網(wǎng)站、德清網(wǎng)絡(luò)推廣、成都小程序開發(fā)、德清網(wǎng)絡(luò)營銷、德清企業(yè)策劃、德清品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供德清建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
前言
cp命令用來將一個或多個源文件或者目錄復(fù)制到指定的目的文件或目錄。它可以將單個源文件復(fù)制成一個指定文件名的具體的文件或一個已經(jīng)存在的目錄下。cp命令還支持同時復(fù)制多個文件,當(dāng)一次復(fù)制多個文件時,目標(biāo)文件參數(shù)必須是一個已經(jīng)存在的目錄,否則將出現(xiàn)錯誤。
語法
cp(選項)(參數(shù))
選項
-a:此參數(shù)的效果和同時指定"-dpR"參數(shù)相同;
-d:當(dāng)復(fù)制符號連接時,把目標(biāo)文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄;
-f:強(qiáng)行復(fù)制文件或目錄,不論目標(biāo)文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復(fù)制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-s:對源文件建立符號連接,而非復(fù)制文件;
-u:使用這項參數(shù)后只會在源文件的更改時間較目標(biāo)文件更新時或是名稱相互對應(yīng)的目標(biāo)文件并不存在時,才復(fù)制文件;
-S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認(rèn)后綴;
-b:覆蓋已存在的文件目標(biāo)前將目標(biāo)文件備份;
-v:詳細(xì)顯示命令執(zhí)行的操作。
參數(shù)
源文件:制定源文件列表。默認(rèn)情況下,cp命令不能復(fù)制目錄,如果要復(fù)制目錄,則必須使用-R選項;
目標(biāo)文件:指定目標(biāo)文件。當(dāng)“源文件”為多個文件時,要求“目標(biāo)文件”為指定的目錄。
利用cp命令實現(xiàn)強(qiáng)制覆蓋功能
我們平常在Linux中使用 cp 命令時,會發(fā)現(xiàn)將一個目錄中文件復(fù)制到另一個目錄具有相同文件名稱時,即使添加了 -rf 參數(shù)強(qiáng)制覆蓋復(fù)制時,系統(tǒng)仍然會提示讓你一個個的手工輸入 y 確認(rèn)復(fù)制,所添加的rf參數(shù)是不起作用的。
原因:
cp命令被系統(tǒng)設(shè)置了別名,相當(dāng)于cp=‘cp -i' 。
查詢alias命令
[root@localhost sonarqube]# 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 命令,雖然沒有添加任何參數(shù) ,但系統(tǒng)默認(rèn)會在我們使用 cp 命令時自動添加 -i 參數(shù)
-i, --interactive
prompt before overwrite
-i 即交互的縮寫方式,也就是在使用 cp 命令作文件覆蓋操作之前,系統(tǒng)會要求確認(rèn)提示.這個本來是系統(tǒng)的一個保險措施.如果有很多文件要復(fù)制,覺得一個一個輸入y 確認(rèn)麻煩的話,可以使用如下方法解決:
強(qiáng)制復(fù)制
建議大家使用方式一,因為取消別名的話很容易造成風(fēng)險,萬一又忘記恢復(fù)別名,以后的復(fù)制都不會有提示信息。
有提示信息可以多一層保險嘛,是人都會有犯混的時候,給自己加一個保險,有保障呀.
我們平時在 Linux 中使用 cp 命令時,當(dāng)把文件從一個目錄復(fù)制到另一個目錄,且目錄中具有同名文件時,系統(tǒng)會提示輸入 y 來確認(rèn)是否覆蓋同名文件。
如果文件少的話,也無關(guān)緊要,但文件多的話,要一個一個確認(rèn)簡直太累了。更要命的是,即使我們加了 -rf 參數(shù),還是會提示。
為什么會這樣呢?
原因就是 cp 命令被系統(tǒng)設(shè)置了 別名 。
我們可以查看一下:
也就是說,我們平時使用的 cp 命令,實際上是 cp -i 。
那 -i 參數(shù)是什么意思呢?
就是在覆蓋之前會給一個提示,這應(yīng)該算是系統(tǒng)的一個保險措施。
那如果希望進(jìn)行強(qiáng)制復(fù)制,不想一個一個輸入 y ,有什么辦法呢?
使用原生命令:
取消別名:
這樣再使用 cp -rf 的時候就不會提示確認(rèn)了。
但需要注意的是,使用完之后記得把別名恢復(fù)。
這里更推薦大家使用辦法一,因為命令簡單,而且還不會造成忘記恢復(fù)別名而帶來的風(fēng)險。
以上就是本文的全部內(nèi)容,如果覺得還不錯的話,歡迎 點贊 , 轉(zhuǎn)發(fā) 和 關(guān)注 ,感謝支持。
推薦閱讀:
1、這么就用不會提示了:# \cp -rf \x0d\x0a2、 原因:\x0d\x0a# vi ~/.bashrc\x0d\x0a 如果你看到如下內(nèi)容,以下命令都會用別名執(zhí)行了,就是說自動加了 -i 參數(shù):\x0d\x0a\x0d\x0aalias rm='rm -i'\x0d\x0aalias cp='cp -i'\x0d\x0aalias mv='mv -i'\x0d\x0a 為了讓復(fù)制和移動大量文件去覆蓋目標(biāo)時,不會產(chǎn)生一個個的提示,命令應(yīng)該這樣寫\x0d\x0a# \cp -rf /data/xxx* /home/xxx \x0d\x0a注意 cp 命令前加了 \ ,意思是不讓它用~/.bashrc里的別名運行,即 -i 參數(shù)\x0d\x0a3、補充cp該命令的各選項含義如下\x0d\x0a- a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,并遞歸地拷貝目錄,其作用等于dpR選項的組合。\x0d\x0a- d 拷貝時保留鏈接。\x0d\x0a- f 刪除已經(jīng)存在的目標(biāo)文件而不提示。\x0d\x0a- i 和f選項相反,在覆蓋目標(biāo)文件之前將給出提示要求用戶確認(rèn)。回答y時目標(biāo)文件將被覆蓋,是交互式拷貝。\x0d\x0a- p 此時cp除復(fù)制源文件的內(nèi)容外,還將把其修改時間和訪問權(quán)限也復(fù)制到新文件中。\x0d\x0a- r 若給出的源文件是一目錄文件,此時cp將遞歸復(fù)制該目錄下所有的子目錄和文件。此時目標(biāo)文件必須為一個目錄名。\x0d\x0a- l 不作拷貝,只是鏈接文件。\x0d\x0a4、需要說明的是,為防止用戶在不經(jīng)意的情況下用cp命令破壞另一個文件,如用戶指定的目標(biāo)文件名是一個已存在的文件名,用cp命令拷貝文件后,這個文件就會被新拷貝的源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。
mv命令是move的縮寫,可以用來移動文件或者將文件改名,是Linux系統(tǒng)下常用的命令,經(jīng)常用來備份文件或者目錄。
命令格式
mv [選項] 源文件或目錄 目標(biāo)文件或目錄
選項:
-f 強(qiáng)制覆蓋,如果目標(biāo)文件已經(jīng)存在,則不詢問,直接強(qiáng)制覆蓋;
-i 交互移動,如果目標(biāo)文件已經(jīng)存在,則詢問用戶是否覆蓋;
-n 如果目標(biāo)文件已經(jīng)存在,則不會覆蓋,而且不詢問用戶;
-v 顯示文件或目錄的移動過程;
-u 若目標(biāo)文件已經(jīng)存在,但兩者相比,源文件更新,則會對目標(biāo)文件進(jìn)行升級。