開心生活站

位置:首頁 > 綜合知識 > 

linux cp 不覆蓋

linux cp 不覆蓋

在linux中,可以利用cp命令的“-i”參數實現不覆蓋文件,cp命令用於複製文件或者目錄,當參數設置爲“-i”時,在覆蓋文件之前會給出提示,回答“n”時表示不同意覆蓋文件,回答“y”時表示同意覆蓋文件,語法爲“cp -i 文件名”。

小編還爲您整理了以下內容,可能對您也有幫助:

Linux下如何使CP命令不提示覆蓋

在Linux下使用CP命令,經常會提示是否覆蓋,如果是太批量的文件覆蓋,老是這麼提示,會很煩的。那如何解決這個問題呢? 我們先來看一下原因吧! 一般我們使用的命令是cp -rf sourcefile targetdir或cp -r -f sourcefile targetdir, -r的意思是遞歸複製,也就是複製文件夾及其下所有文件 -f的意思是遇到同名的文件,不提示,直接覆蓋 但爲什麼我們用這兩個參數,系統還是會提示覆蓋呢? 這是因爲,系統在安裝的時候使用了別名,防止我們誤操作,覆蓋了不該覆蓋的文件。使用別名命令就可以看到具體的配置了。[test@Server home]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=tty'

alias ll='ls -l --color=tty'

alias ls='ls --color=tty'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 從上邊我們可以看出,我們輸入的cp命令,其實是“cp -i”命令, 也就是不管我們怎麼輸入 cp -rf,其實執行的是 cp -i -rf , 也無怪乎總是提問是否覆蓋了。 從上邊的命令我們可以知道,其他幾個命令,也使用了別名,例如ll,ls mv,rm等。 那麼如何解決這個問題呢?[test@Server home]# vi ~/.bashrc

# .bashrc# User specific aliases and functionsalias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'# Source global definitions

. /etc/bashrcfi只要在相應的命令前加#號,就可以註釋掉該命令了。保存退出,然後你就可以用純粹的原命令了。 其實還有一種辦法可以解決這個問題,就是使用 \cp -f file dir 就可以了!

在Linux中,要將指定源文件複製到目標文件,但不覆蓋原有文件時,需使用( )命令。

【答案】:C

本題考查Linux文件系統的基本知識。在Linux系統中,文件複製命令cp。cp命令的功能是把指定的源文件複製到目標文件或把多個源文件複製到目標目錄中。如同 DOS下的 copy命令一樣。cp命令的一般格式是:

Cp [-選項] source fileName | directory dest fileName | directory

重要選項參數說明如下。

? -a: 整個目錄拷貝。它保留鏈接、文件屬性,並遞歸地拷貝子目錄。

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

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

? -p: 除複製源文件的內容外,還把其修改時間以及訪問權限也複製到新文件中。

? -R:若給出的源文件是一目錄文件,將遞歸複製該目錄下所有的子目錄和文件 。

此時目標文件必須爲一個目錄名。

? -l: 不作拷貝,只是鏈接文件。

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 cp