linux複製指定目錄下的全部檔案到另一個目錄中

來源:互聯網
上載者:User


 copy命令
   
 該命令的功能是將給出的檔案或目錄拷貝到另一檔案或目錄中,同MSDOS下的copy命令一樣,功能十分強大。

    文法: cp [選項] 源檔案或目錄 目標檔案或目錄

    說明:該命令把指定的源檔案複製到目標檔案或把多個源檔案複製到目標目錄中。

    該命令的各選項含義如下:

    - a 該選項通常在拷貝目錄時使用。它保留連結、檔案屬性,並遞迴地拷貝目錄,其作用等於dpR選項的組合。

    - d 拷貝時保留連結。

    - f 刪除已經存在的目標檔案而不提示。

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

    - p 此時cp除複製源檔案的內容外,還將把其修改時間和存取權限也複製到新檔案中。

    - r 若給出的源檔案是一目錄檔案,此時cp將遞迴複製該目錄下所有的子目錄和檔案。此時目標檔案必須為一個目錄名。

    - l 不作拷貝,只是連結檔案。


需要說明的是,為防止使用者在不經意的情況下用cp命令破壞另一個檔案,如使用者指定的目標檔案名已存在,用cp命令拷貝檔案後,這個檔案就會被新源檔案覆蓋,因此,建議使用者在使用cp命令拷貝檔案時,最好使用i選項。

例1

複製指定目錄下的全部檔案到另一個目錄中

檔案及目錄的複製是經常要用到的。linux下進行複製的命令為cp。
假設複製來源目錄 為 dir1 ,目標目錄為dir2。怎樣才能將dir1下所有檔案複製到dir2下了
如果dir2目錄不存在,則可以直接使用
cp -r dir1 dir2
即可。
如果dir2目錄已存在,則需要使用
cp -r dir1/. dir2
如果這時使用cp -r dir1 dir2,則也會將dir1目錄複寫到dir2中,明顯不符合要求。

ps:dir1、dir2改成對應的目錄路徑即可。

例2
複製指定檔案到指定檔案夾

首先建立一個用於測試的目錄,用'tree'命令查看其結構如下所示:
   

 
可見,目錄中主要包含用於測試的*.txt檔案和用於充當炮灰的*。tes檔案
目標是保持當前的目錄結構,只把txt檔案複製出來
 
方法一:當不需要的檔案類型較為單一時,可以通過完全複製然後刪除指定類型的檔案完成
Step1 使用命令 cp -r test/ test2 將測試目錄test下所有內容完全複製到test2,此時樹形結構如下圖

 
Step2 組合使用find及xargs,將*.tes檔案刪除
xargs是給命令傳遞參數的一個過濾器,可以將前一個命令產生的輸出作為後一個命令的參數
命令find test2/ -name '*.tes' |xargs rm -rf, 即將find產生的輸出(test2目錄下的所有tes檔案),作為rm的參數,從而完全刪除
實際效果如圖所示

 
適用情境舉例:把專案檔備份,要去除其中的.svn檔案,可以採用這種方式
   
方法二:需要的檔案為單一類型,帶目錄結構複製
這種情況下可以使用tar命令將指定類型的檔案打包,然後解包,同樣需要組合使用find和xargs
 
Step1 建立目錄test3
mkdir test3
 
Step2 將指定類型檔案帶目錄結構打包
find test/ -name '*.txt' |xargs tar czf test3.tgz
 
Step3 解包到目錄test3
tar zxvf test3.tgz -C test3
 
運行結果如圖所示:
 

 
適用情境:較為普遍,例如可以複製某個Web項目的所有html/jsp/php檔案;或複製其他項目中特定類型的源檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.