linux下面覆蓋文件,如何實現直接覆蓋,不提示


cp覆蓋時,無論加什么參數-f之類的還是提示是否覆蓋,當文件比較少的時候還可以按Y確認,當很多文件的時候就不好說了。用下面的方法可以解決覆蓋提示的問題。

例如:把zmc目錄下的文件復制到linuxzmc目錄

[root@linuxzmc ~]# cp zmc/* linuxzmc
cp:是否覆蓋“linuxzmc/1.txt”?
執行上面的命令時,linuxzmc文件夾中存在的每個文件都會提示是否覆蓋;

[root@linuxzmc ~]# cp -rf zmc/* linuxzmc
cp:是否覆蓋“linuxzmc/1.txt”?
加了-f了,依然有此提示。

服務器上查找后發現在默認的系統中是加了別名如下
[root@linuxzmc ~]# alias
alias cp=’cp -i’
可以看到別人  ,也就是當執行cp的時候,其實執行的是cp -i參數

PS:    -f      刪除已經存在的目標文件而不提示。

-i      和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是交互式拷貝。

-r      若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。
解決辦法:

方法一:修改bashrc文件禁用掉cp的alias

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

在alias cp=’cp -i’前加上”#”注釋,重新登錄即可實現復制不提示。

[root@linuxzmc ~]# cp -rf zmc linuxzmc
[root@linuxzmc ~]# cp -r zmc linuxzmc
方法二:直接輸入命令即可實現

[root@linuxzmc~]# cp -rf zmc linuxzmc/
cp:是否覆蓋“linuxzmc/zmc/user_add.sh”?

[root@linuxzmc ~]# \cp -rf mc linuxzmc
PS:\cp則是告訴shell不要去查alias,直接執行原本的cp


免責聲明!

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



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