Linux cp命令直接覆蓋不提示方法


 在有時拷貝文件比較多的目錄,cp覆蓋時,無論加什么參數-f之類的還是提示是否覆蓋,這在cp覆蓋操作的時候是不能忍受的。

把a目錄下的文件復制到b目錄

cp  –r  a/*  b
 

執行上面的命令時,b存在的每個文件都會提示是否覆蓋;

cp –r –f a/*  b

 

 

執行上面的命令時,b存在的每個文件都不再會提示;


這是我們希望的理想狀態,但是有時加了-f了,怎么還會有提示呢?原來一些服務器會默認增加別名 alias cp=’cp -i’,當你執行cp時,其實執行的是cp –i。

在終端執行alias就可以看出來了。

[root@lamp100 ~]# alias

alias cp=’cp -i’

 

 

可以這樣解決

方法1:

[root@lamp100 ~]# vi ~/.bashrc
 

在alias cp=’cp -i’前加上”#”注釋掉這行,:wq! 保存退出,然后重新登陸就可以了。

方法2:

拷貝時加“\”,如
#\cp src dst

 

總結一下


1) 取消cp的alias,放心這不是永久生效

#unalias cp

#cp a /test/a

 

 

2) 用 cp 執行cp命令時不走

alias#cp a /test/a


關於linux cp命令

cp(copy)

功能說明:復制文件或目錄。

語  法:cp [-abdfilpPrRsuvx][-S <備份字尾字符串>][-V <備份方式>][--help][--spares=<使用時機>][--version][源文件或目錄][目標文件或目錄] [目的目錄]

補充說明:cp指令用在復制文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到該目錄中。若同時指定多個文件或目錄,而最后的目的地並非是一個已存在的目錄,則會出現錯誤信息。

參  數:
 -a或--archive  此參數的效果和同時指定"-dpR"參數相同。 
 -b或--backup  刪除,覆蓋目標文件之前的備份,備份文件會在字尾加上一個備份字符串。 
 -d或--no-dereference  當復制符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄。 
 -f或--force  強行復制文件或目錄,不論目標文件或目錄是否已存在。 
 -i或--interactive  覆蓋既有文件之前先詢問用戶。 
 -l或--link  對源文件建立硬連接,而非復制文件。 
 -p或--preserve  保留源文件或目錄的屬性。 
 -P或--parents  保留源文件或目錄的路徑。 
 -r  遞歸處理,將指定目錄下的文件與子目錄一並處理。 
 -R或--recursive  遞歸處理,將指定目錄下的所有文件與子目錄一並處理。 
 -s或--symbolic-link  對源文件建立符號連接,而非復制文件。 
 -S<備份字尾字符串>或--suffix=<備份字尾字符串>  用"-b"參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,預設的備份字尾字符串是符號"~"。 
 -u或--update  使用這項參數后只會在源文件的更改時間較目標文件更新時或是 名稱相互對應的目標文件並不存在,才復制文件。 
 -v或--verbose  顯示指令執行過程。 
 -V<備份方式>或--version-control=<備份方式>  用"-b"參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,這字符串不僅可用"-S"參數變更,當使用"-V"參數指定不同備份方式時,也會產生不同字尾的備份字串。  
 -x或--one-file-system  復制的文件或目錄存放的文件系統,必須與cp指令執行時所處的文件系統相同,否則不予復制。 
 --help  在線幫助。 
 --sparse=<使用時機>  設置保存稀疏文件的時機。 
 --version  顯示版本信息

 

轉自https://blog.csdn.net/lanmolei814/article/details/37725999/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM