Linux系統(tǒng)利用cp命令實現(xiàn)強制覆蓋功能的方法
cp命令用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經(jīng)存在的目錄下。cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數(shù)必須是一個已經(jīng)存在的目錄,否則將出現(xiàn)錯誤。
語法
cp(選項)(參數(shù))
選項
- -a:此參數(shù)的效果和同時指定"-dpR"參數(shù)相同;
- -d:當復制符號連接時,把目標文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄;
- -f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
- -i:覆蓋既有文件之前先詢問用戶;
- -l:對源文件建立硬連接,而非復制文件;
- -p:保留源文件或目錄的屬性;
- -R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
- -s:對源文件建立符號連接,而非復制文件;
- -u:使用這項參數(shù)后只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件并不存在時,才復制文件;
- -S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認后綴;
- -b:覆蓋已存在的文件目標前將目標文件備份;
- -v:詳細顯示命令執(zhí)行的操作。
參數(shù)
源文件:制定源文件列表。默認情況下,cp命令不能復制目錄,如果要復制目錄,則必須使用-R選項;
目標文件:指定目標文件。當“源文件”為多個文件時,要求“目標文件”為指定的目錄。
利用cp命令實現(xiàn)強制覆蓋功能
我們平常在Linux中使用 cp 命令時,會發(fā)現(xiàn)將一個目錄中文件復制到另一個目錄具有相同文件名稱時,即使添加了 -rf 參數(shù)強制覆蓋復制時,系統(tǒng)仍然會提示讓你一個個的手工輸入 y 確認復制,所添加的rf參數(shù)是不起作用的。
原因:
cp命令被系統(tǒ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)默認會在我們使用 cp 命令時自動添加 -i 參數(shù)
-i, --interactive prompt before overwrite
-i 即交互的縮寫方式,也就是在使用 cp 命令作文件覆蓋操作之前,系統(tǒng)會要求確認提示.這個本來是系統(tǒng)的一個保險措施.如果有很多文件要復制,覺得一個一個輸入y 確認麻煩的話,可以使用如下方法解決:
強制復制
建議大家使用方式一,因為取消別名的話很容易造成風險,萬一又忘記恢復別名,以后的復制都不會有提示信息。
有提示信息可以多一層保險嘛,是人都會有犯混的時候,給自己加一個保險,有保障呀.
方式一
使用原生的cp命令
/bin/cp -rf xxxx
方式二
取消cp命令別名
unalias cp
去掉 cp 命令的別名,這時你再用 cp -rf 復制文件時,就不會要求確認啦.
復制完成后恢復別名
alias cp='cp -i'
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對本站的支持。
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
關注官方微信