我們先來看一下原因吧! 一般我們使用的命令是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」命令, 從上邊的命令我們可以知道,其他幾個命令,也使用了別名,例如ll,ls mv,rm等。 [test@Server home]# vi ~/.bashrc# .bashrc# User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrcfi 只要在相應的命令前加#號,就可以注釋掉該命令了。保存退出,然後你就可以用純粹的原命令了。 其實還有一種辦法可以解決這個問題,就是使用 \cp -f file dir 就可以了!
Ⅱ linux cp -f參數具體是干什麼的,詳細說一下。如果說是直接覆蓋不提示,那fedora10里怎麼不行啊
-f 參數是強制復制,比如你在A文件夾裡面有個文件名叫B,然後你把C文件夾裡面的另一個文件名叫B的復制到A裡面,這個時候會照成沖突,然後會提示你要不要繼續復制.加上-f 就不會提示你了.
你輸入-f 還是會提示你的原因是
-------------------------------------------------------------
有的系統在安裝的時候,cp - i 的 alias 就是 cp
也就是說你在執行cp的時候,其實是執行的cp -i
取消掉cp的alias就好了
==========================================
解決辦法
unalias cp
------------------------------------------------------
Ⅲ linux下移動或者復制文件覆蓋相同文件夾時,文件夾裡面的每個文件都提示是否覆蓋
1、這么就用不會提示了:# cp -rf x0dx0a2、 原因:x0dx0a# vi ~/.bashrcx0dx0a 如果你看到如下內容,以下命令都會用別名執行了,就是說自動加了 -i 參數:x0dx0ax0dx0aalias rm='rm -i'x0dx0aalias cp='cp -i'x0dx0aalias mv='mv -i'x0dx0a 為了讓復制和移動大量文件去覆蓋目標時,不會產生一個個的提示,命令應該這樣寫x0dx0a# cp -rf /data/xxx* /home/xxx x0dx0a注意 cp 命令前加了 ,意思是不讓它用~/.bashrc里的別名運行,即 -i 參數x0dx0a3、補充cp該命令的各選項含義如下x0dx0a- a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,並裂冊遞歸地拷貝目錄,其作用等於dpR選項的組合。x0dx0a- d 拷貝時保留鏈接。x0dx0a- f 刪除已經存在的目標文件而不提示。x0dx0a- i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是互動式拷貝肆搏宏。x0dx0a- p 此時cp除復制源文件的內容外,還將把其修改時間和訪問許可權也復制到新文件中。x0dx0a- r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。x0dx0a- l 不作拷貝,只是鏈接文件。x0dx0a4、需要說明的是,為防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名是一個已存在的文件名,用cp命令拷貝文件後,這個文件就會被新拷貝的源文件覆蓋,銀察因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。
Ⅳ 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選項。