複製檔案(cp 指令)

使用 cp 指令,把 SourceFileSourceDirectory 參數所指定的檔案或目錄內容副本,建立到 TargetFileTargetDirectory 參數所指定的檔案或目錄。

如果指定作為 TargetFile 的檔案已經存在,複製的動作會不經警告就把原始檔案的內容寫入覆蓋掉。如果您正在複製一個以上的 SourceFile,目標端必須為一個目錄。

如果在新目的地已有相同名稱的檔案存在,所複製的檔案將會改寫新目的地上的檔案。因此,這是為檔案副本指定名稱的好方法,這樣可以確保目的地目錄中沒有相同名稱的檔案存在。

若要把 SourceFile 的副本放置在一個目錄內,請對 TargetDirectory 參數指定一個已存在目錄的路徑。除非您在路徑的尾端指定好一個新檔名,否則在複製檔案到一個目錄時,會維持它們個別的名稱。如果您指定了 -r-R 旗標,cp 指令也可以把整個目錄複製到其他目錄內。

您也可以用 -R 旗標來複製特殊裝置的檔案。指定 -R 旗標會在新的路徑名稱下重新產生特殊檔案。指定 -r 旗標會導致 cp 指令試圖把特殊檔案拷貝成一般檔案。

以下是 cp 指令的用法範例:
  • 若要建立現行目錄中的檔案副本,請鍵入:
    cp prog.c prog.bak
    此動作會把 prog.c 複製成 prog.bak。如果 prog.bak 檔案不存在,cp 指令即會建立它。如果已存在,cp 指令即會將它置換成 prog.c 檔的副本。
  • 若要將現行目錄中的檔案複製到另一個目錄,請鍵入:
    cp jones /home/nick/clients
    此動作會把 jones 檔案複製到 /home/nick/clients/jones
  • 若要將目錄中的所有檔案複製到新目錄,請鍵入:
    cp /home/janet/clients/* /home/nick/customers
    此動作只會把 clients 目錄中的檔案複製到 customers 目錄中。
  • 若要複製特定的一組檔案到另一個目錄,請鍵入:
    cp jones lewis smith /home/nick/clients
    此動作會把在您現行工作目錄的 joneslewissmith 檔案複製到 /home/nick/clients 目錄中。
  • 若要使用型樣相符的字元來複製檔案,請鍵入:
    cp programs/*.c .
    此動作會把 programs 目錄中以 .c 結尾的檔案複製到現行目錄(以單一點 (.) 表示)。您必須在 c 和最後的點之間鍵入一個空格。

請參閱 Commands Reference, Volume 1 中的 cp 指令,以取得完整語法。