1. 程式人生 > >cp:複製檔案或目錄

cp:複製檔案或目錄

【功能說明】

   cp命令可以理解為英文單詞copy的縮寫,其功能為複製檔案或目錄

【語法格式】

cp [option] [source]  [dest]
cp [選項]    [原始檔]  [目標檔案]

【選項說明】

引數選項 解釋說明(帶*的為重點)
-p 複製檔案時保持檔案的所有者、許可權資訊及時間屬性
-d 如果複製的原始檔是符號連結,那麼僅複製符號連結本身,而且保留符號連結所指向的目標檔案或目錄
-r 遞迴複製目錄,即複製目錄下的所有層級的子目錄及檔案
-a 等同於上面的p、d、r 這3個選項功能的總和 <font color=#0099f6>*</font>
-i 覆蓋已有檔案前提示使用者確認
-t 預設情況下命令格式是“cp 原始檔 目標檔案”,使用-t引數可以顛倒順序,格式變為“cp -t 目標檔案 原始檔”

使用範例

1.基礎範例

  • 無引數和帶引數 -a 的比較
    cp:複製檔案或目錄

可以發現使用 -a 引數複製時,檔案的時間屬性沒有改變,-a的引數功能包含-p引數保持檔案屬性的功能。

  • -i 引數的例子
    [
    [email protected]
    test]# cp -i file1.txt file5.txt # <==使用-i引數複製檔案,會提示是否覆蓋檔案 cp: overwrite `file5.txt'? [[email protected] test]# cp file1.txt file5.txt #<== 不使用 -i 引數一樣的結果,為什麼呢? cp: overwrite `file5.txt'? [[email protected] test]# alias cp #<==原因是系統為cp命令預設設定了別名 alias cp='cp -i'

    CentOS 系統預設為cp命令設定了別名,即增加了-i的引數。但是在Shell指令碼中執行cp時,若沒有-i引數,則並不會詢問是否覆蓋。這是因為命令列和Shell指令碼執行時的環境變數不同,不過在指令碼中一般使用命令的全路徑。