【功能說明】markdown
cp命令能夠理解爲英文單詞copy的縮寫,其功能爲複製文件或目錄ide
【語法格式】命令行
cp [option] [source] [dest] cp [選項] [源文件] [目標文件]
【選項說明】code
參數選項 | 解釋說明(帶*的爲重點) |
---|---|
-p | 複製文件時保持文件的全部者、權限信息及時間屬性 |
-d | 若是複製的源文件是符號連接,那麼僅複製符號連接自己,並且保留符號連接所指向的目標文件或目錄 |
-r | 遞歸複製目錄,即複製目錄下的全部層級的子目錄及文件 |
-a | 等同於上面的p、d、r 這3個選項功能的總和 <font color=#0099f6>*</font> |
-i | 覆蓋已有文件前提示用戶確認 |
-t | 默認狀況下命令格式是「cp 源文件 目標文件」,使用-t參數能夠顛倒順序,格式變爲「cp -t 目標文件 源文件」 |
1.基礎範例blog
能夠發現使用 -a 參數複製時,文件的時間屬性沒有改變,-a的參數功能包含-p參數保持文件屬性的功能。遞歸
[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腳本執行時的環境變量不一樣,不過在腳本中通常使用命令的全路徑。it