在有時拷貝文件比較多的目錄,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/
