1. 程式人生 > >cp:復制文件或目錄

cp:復制文件或目錄

block oot 用戶 分享 -i centos 系統 執行c oss 源文件

【功能說明】

   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 的比較
    技術分享圖片

可以發現使用 -a 參數復制時,文件的時間屬性沒有改變,-a的參數功能包含-p參數保持文件屬性的功能。

  • -i 參數的例子
    [root@tianakong test]# cp -i file1.txt  file5.txt  # <==使用-i參數復制文件,會提示是否覆蓋文件
    cp: overwrite `file5.txt‘? 
    [root@tianakong test]# cp file1.txt file5.txt #<== 不使用 -i 參數一樣的結果,為什麽呢?
    cp: overwrite `file5.txt‘? 
    [root@tianakong test]# alias cp #<==原因是系統為cp命令默認設置了別名
    alias cp=‘cp -i‘

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

cp:復制文件或目錄