*********************記錄下來,僅供學習、復習使用。****************************
學習環境:Ubuntu 16.04.2 LTS 64位
cp命令用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經存在的目錄下。cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數必須是一個已經存在的目錄,否則將出現錯誤。
-a:此參數的效果和同時指定"-dpR"參數相同; -d:當復制符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄; -f:強行復制文件或目錄,不論目標文件或目錄是否已存在; -i:覆蓋既有文件之前先詢問用戶; -l:對源文件建立硬連接,而非復制文件; -p:保留源文件或目錄的屬性; -R/r:遞歸處理,將指定目錄下的所有文件與子目錄一並處理; -s:對源文件建立符號連接,而非復制文件; -u:使用這項參數后只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件並不存在時,才復制文件; -S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認后綴; -b:覆蓋已存在的文件目標前將目標文件備份; -v:詳細顯示命令執行的操作。
Example 1: 把某個文件夾下面的文件復制到另外一文件夾。
在這里,把目錄/home/alpha/Documents/Otest里面的兩個文件“Plum Rain Season1” 和 “Plum Rain Season1”復制到/home/alpha/Documents/Dtest
在復制時候會出現以下錯誤信息
由於文件稱含有格,所以復制的時候可以在空格見面加上轉義符號"\",或者用兩個英文的雙括號把含有空格的整個文件名括起來,下面分別采用這兩個方式復制文件1和文件2.
終端沒有報錯,再去Dtest這個目錄查看,返現這兩個文件都被復制到Dtest這個目錄了。
Example2:把文件夾及復制到一個不存在的目標文件夾。
Otest這個文件夾里面有一個子文件夾OSub,把他復制到Dtest/DDtest,然而DDtest這個文件夾並不存在。
這些一下命令會報錯,因為cp命令只有復制功能,並無創建目錄的功能,我們需要用到cp命令的-a或者-r參數。
cp /home/alpha/Documents/Otest/OSub /home/alpha/Documents/Dtest/DDtest
執行以下命令,會在Dtest這個目錄下面創建一個新的目錄DDtest“, 並且源目錄OSub下面的文件以及子目錄和子目錄里面的一切都會被復制到DDtest里面。
cp -a /home/alpha/Documents/Otest/OSub /home/alpha/Documents/Dtest/DDtest
這時,如果我們再次執行以上命令,則會吧Osub目錄本身已經Osub目錄下面的一些都復制到DDtest。因為當我們再次這個命令時,DDtest這個目錄已經存在的,這個命令的本意就是把源目錄復制到目標目錄。
對比上面兩個截圖,不難發現,再次執行相同cp命令時,OSub這個目錄本身被復制到了第一次復制時創建的DDtest這個目錄。
Example 3: 把目錄下面的文件復制到指定目錄。
在這里,有一個名為Old的目錄里面有兩個文件
名為New的目錄下面什么也沒有
執行以下命令會把Old目錄的兩個文件放在New這個目錄里。
注意:是Old/* 不是Old/.* 也不是Old*
cp -a /home/alpha/Documents/Old/* /home/alpha/Documents/New
執行以下命令,Old目錄里面的文件Old1會把New目錄里面的同名文件替換掉而不會有任何提示。
cp /home/alpha/Documents/Old/Old1 /home/alpha/Documents/New/Old1
cp -i
執行cp -i,在覆蓋同名文件前會提示是否要覆蓋。
alpha@alpha-virtual-machine:~$ cp -i /home/alpha/Documents/Old/Old1 /home/alpha/Documents/New/Old1 cp: overwrite '/home/alpha/Documents/New/Old1'? y alpha@alpha-virtual-machine:~$ cp -i /home/alpha/Documents/Old/Old1 /home/alpha/Documents/New/Old1 cp: overwrite '/home/alpha/Documents/New
Example 4: 復制並改名字
以下命令會把old1這個文件復制到New這個目錄下面,並且改名為"imfromoldfolder".
cp /home/alpha/Documents/Old/Old1 /home/alpha/Documents/New/imfromoldfolder
關於cp命令講得比較詳細的兩個鏈接
http://www.jb51.net/article/101641.htm
http://www.xuexila.com/diannao/xitong/linux/305357.html