linuxcp覆蓋提示
① linux的cp怎麼覆蓋
Linux下cp覆蓋時,無論加什麼參數-f之類的還是提示是否覆蓋,當沒有打包的情況下直接復制:
把test目錄下的文件復制到test1目錄;
cp
–r
test/*
test1
執行上面的命令時,test1存在的每個文件都會提示是否覆蓋;
cp
–rf
test/*
test1
執行上面的命令時,test1存在的每個文件都不再會提示;
這是我們希望的理想狀態,但是有時加了-f了,還會有提示.
因為伺服器會默認增加別名
alias
cp='cp
-i',當你執行cp時,其實執行的是cp
–i。
alias下就可以看出來了。
#
alias
alias
cp='cp
-i'
用下面可以解決
#
vi
~/.bashrc
在alias
cp='cp
-i'前加上"#"注釋掉這行,:wq!保存推出,然後重新登陸就可以了。
下次在使用cp
-rf
就可以直接覆蓋已經存在了文件了。
當然你不想改變別名的話可以轉義掉,\cp
-rf即可。
② linux下移動或者復制文件覆蓋相同文件夾時,文件夾裡面的每個文件都提示是否覆蓋
1、這么就用不會提示了:# \cp -rf
2、 原因:
# vi ~/.bashrc
如果你看到如下內容,以下命令都會用別名執行了,就是說自動加了 -i 參數:
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
為了讓復制和移動大量文件去覆蓋目標時,不會產生一個個的提示,命令應該這樣寫
# \cp -rf /data/xxx* /home/xxx
注意 cp 命令前加了 \ ,意思是不讓它用~/.bashrc里的別名運行,即 -i 參數
3、補充cp該命令的各選項含義如下
- a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,並遞歸地拷貝目錄,其作用等於dpR選項的組合。
- d 拷貝時保留鏈接。
- f 刪除已經存在的目標文件而不提示。
- i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是互動式拷貝。
- p 此時cp除復制源文件的內容外,還將把其修改時間和訪問許可權也復制到新文件中。
- r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。
- l 不作拷貝,只是鏈接文件。
4、需要說明的是,為防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名是一個已存在的文件名,用cp命令拷貝文件後,這個文件就會被新拷貝的源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。
③ Linux 使用 cp 命令強制覆蓋功能
我們平時在 Linux 中使用 cp 命令時,當把文件從一個目錄復制到另一個目錄,且目錄中具有同名文件時,系統會提示輸入 y 來確認是否覆蓋同名文件。
如果文件少的謹搏飢話,也無關緊要,但文件多的話,要一個一個確認簡直太累了。更要命的是,即使我們加了 -rf 參數,還是會提示。
為什麼會這樣呢?
原因就是 cp 命令被系統設置了 別名 。
我們可以查看祥返一下:
也就是說,我們平時使用的 cp 命令,實際上是 cp -i 。
那 -i 參數是什麼意思呢?
就是在覆蓋之前銀昌會給一個提示,這應該算是系統的一個保險措施。
那如果希望進行強制復制,不想一個一個輸入 y ,有什麼辦法呢?
使用原生命令:
取消別名:
這樣再使用 cp -rf 的時候就不會提示確認了。
但需要注意的是,使用完之後記得把別名恢復。
這里更推薦大家使用辦法一,因為命令簡單,而且還不會造成忘記恢復別名而帶來的風險。
以上就是本文的全部內容,如果覺得還不錯的話,歡迎 點贊 , 轉發 和 關注 ,感謝支持。
推薦閱讀:
④ linux cp 命令 重復提示覆蓋
cp -yR 11/* 22/
這就成了。