1. 程式人生 > >【Unix/Linux】【命令】【檔案,目錄操作工具】複製檔案或目錄——cp命令

【Unix/Linux】【命令】【檔案,目錄操作工具】複製檔案或目錄——cp命令

cp命令用來複制檔案或者目錄,是Linux系統中最常用的命令之一。

一般情況下,shell會設定一個別名,在命令列下複製檔案時,如果目標檔案已經存在,就會詢問是否覆蓋,不管你是否使用-i引數。但是如果是在shell指令碼中執行cp時,沒有-i引數時不會詢問是否覆蓋。這說明命令列和shell指令碼的執行方式有些不同。

命令格式

cp [選項]... [-T] 源 目的
或:
cp [選項]...       源  目錄
或:
cp [選項]... -t   目錄 源

命令功能

將原始檔複製至目標檔案,或將多個原始檔複製至目標目錄。

命令引數

  • -a —— 為每個已存在的目標檔案建立備份
  • -f —— 如果目標檔案無法開啟則將其移除並重試(當 -n 選項存在時則不需再選此項)
  • -i —— 覆蓋前詢問(使前面的 -n 選項失效)
  • -H —— 跟隨原始檔中的命令列符號連結
  • -l —— 連結檔案而不復制
  • -L —— 總是跟隨符號連結
  • -n —— 不要覆蓋已存在的檔案(使前面的 -i 選項失效)
  • -P —— 不跟隨原始檔中的符號連結
  • -p —— 模式,所有權,時間戳
  • -R, -r, ——複製目錄及目錄內的所有專案

命令例項

例項1:複製單個檔案到目標目錄,檔案在目標目錄中不存在

[email protected]:~> cp log.log test
[email protected]:~> cd test
[email protected]:~/test> ll
total 4
-rw-r--r-- 1 wangxb users 5 Sep 25 12:34 log.log
[email protected]
:~/test>

例項2:目標檔案存在,會詢問是否覆蓋

[email protected]:~> cp -i log.log test
cp: overwrite `test/log.log'? y

例項3:複製整個目錄  -r 引數

  • 當目標資料夾存在時,
[email protected]:~> cp -r gmocompare test
[email protected]:~> cd test
[email protected]:~/test> ll
total 4
drwxr-xr-x 4 wangxb users 4096 Sep 25 12:47 gmocompare

  • 當目標資料夾不存在時,
[email protected]:~> cp -r gmocompare test
[email protected]:~> cd test
[email protected]:~/test> ll
total 8
drwxr-xr-x 4 wangxb users 4096 Sep 25 12:48 gmojar
drwxr-xr-x 4 wangxb users 4096 Sep 25 12:48 gmosrc

  • 當目標資料夾存在時,整個源目錄都被拷貝到目標目錄中去;
  • 當目標資料夾不存在時,只有源目錄中的內容被拷貝到目標目錄中去;