首頁 > 軟體

Linux cp 命令詳解

2020-06-16 16:33:42

在 Linux 和 Unix 系統上工作時,複製檔案和目錄是您最常見的並且幾乎每天要執行的任務之一。

cp 是一個命令列實用程式,用於在 Unix 和 Linux 系統上複製檔案和目錄。在本文中,我們將解釋如何使用該 cp 命令。

如何使用 cp 命令

該 cp 命令的一般語法如下:

cp [OPTIONS] SOURCE... DESTINATION

SOURCE 可以有一個或多個檔案或目錄作為引數,並在 DESTINATION 可以有一個單一的檔案或目錄的作為引數。

  • 當 SOURCE 和 DESTINATION 引數都是檔案時, cp 命令將第一個檔案複製到第二個檔案。如果檔案不存在,命令將建立它。
  • 當 SOURCE 多個檔案或目錄作為引數時, DESTINATION 引數必須是目錄。在這種情況下, SOURCE 檔案和目錄將移動到 DESTINATION 目錄。
  • 當 SOURCE 和 DESTINATION 引數都是目錄時, cp 命令會將第一個目錄複製到第二個目錄中。

要複製檔案和目錄,您必須至少具有原始檔的讀取許可權和目標目錄的寫入許可權。否則,您將收到許可權被拒絕錯誤。

使用 cp 命令複製檔案

cp 最基本的使用方法是複製當前工作目錄中的檔案。例如,要複製 file.txt 檔案到 file_backup.txt 檔案,請執行以下命令:

cp file file_backup

或者

cp file{,_backup}

要將檔案複製到另一個目錄,請指定目標目錄的絕對路徑或相對路徑。僅將目錄名稱指定為目標時,複製的檔案將與原始檔案具有相同的名稱。

在以下範例中,我們將檔案複製 file.txt 到 /backup 目錄:

cp file.txt /backup

如果要以其他名稱複製檔案,則需要指定所需的檔名。下面的命令會將檔案複製到指定的目錄中 new_file.txt 。

cp file.txt /backup/new_file.txt

預設情況下,如果目標檔案存在,它將被覆蓋。-n 選項告訴 cp 不要覆蓋現有檔案。要提示確認,請使用該 -i 選項。

cp -i file.txt file_backup.txt

如果要僅在檔案比目標更新時複製檔案,請使用以下 -u 選項:

cp -u file.txt file_backup.txt

複製檔案時,新檔案將由執行該命令的使用者擁有。使用 -p 選項可保留檔案模式,所有權和時間戳:

cp -p file.txt file_backup.txt

另一個可能有用的選項是 -v,他告訴 cp 列印詳細輸出:

cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'

使用 cp 命令複製目錄

要複製目錄(包括其所有檔案和子目錄),請使用 -R 或 -r 選項。在以下範例中,我們將目錄複製 Pictures 到 Pictures_backup :

cp -R Pictures Pictures_backup

上面的命令將建立一個目標目錄,並遞回地將所有檔案和子目錄從源目錄複製到目標目錄。

如果目標目錄已存在,則源目錄本身及其所有內容將複製到目標目錄。要僅複製檔案和子目錄,而不複製目標目錄,請使用以下 -T 選項:

cp -RT Pictures Pictures_backup

另一種只複製目錄內容而不是目錄本身的方法是使用萬用字元 (*) 。以下命令的缺點是它不會複製隱藏檔案和目錄(以點 . 開頭的檔案和目錄) :

cp -RT Pictures/* Pictures_backup/

複製檔案時,我們在複製檔案時可以使用上一節中使用的所有選項。主要區別在於複製目錄時總是需要使用該 -R 選項。

複製多個檔案和目錄

要一次複製多個檔案和目錄,並指定其名稱,並使用目標目錄作為最後一個引數:

cp file.txt dir file1.txt  dir1

複製多個檔案時,目標必須是目錄。

總結

使用該 cp 命令複製檔案和目錄是一項簡單的任務。如果要在終端中檢視所有可用 cp 的選項的資訊,請輸入 man cp 。

如果要通過網路複製檔案,請使用 rsync 和 scp 命令。


IT145.com E-mail:sddin#qq.com