cp 命令,主要用來復制文件和目錄,同時借助某些選項,還可以實現復制整個目錄,以及比對兩文件的新舊而予以升級等功能。
cp 命令的基本格式如下:cp [選項] 源文件 目標目錄/文件
選項:
- -a:相當於 -d、-p、-r 選項的集合,這幾個選項我們一一介紹;
- -d:如果源文件為軟鏈接(對硬鏈接無效),則復制出的目標文件也為軟鏈接;
- -i:詢問,如果目標文件已經存在,則會詢問是否覆蓋;
- -l:把目標文件建立為源文件的硬鏈接文件,而不是復制源文件;
- -s:把目標文件建立為源文件的軟鏈接文件,而不是復制源文件;
- -p:復制后目標文件保留源文件的屬性(包括所有者、所屬組、權限和時間);
- -r:遞歸復制,用於復制目錄;
- -u:若目標文件比源文件有差異,則使用該選項可以更新目標文件,此選項可用於對文件的升級和備用。
當源文件可以有多個,但這種情況下,目標文件必須是目錄才可以。
這里的軟鏈接,類似於 Windows 系統中的快捷方式,而硬鏈接則是透過文件系統的 inode 號產生一個新的文件名。無論是復制軟鏈接還是硬鏈接,都不是復制源文件。
cp 命令既可以復制文件,也可以復制目錄。我們先來看看如何復制文件,例如:
[root@localhost ~]# touch cangls #建立源文件 [root@localhost ~]# cp cangls /tmp/ #把源文件不改名復制到 /tmp/ 目錄下
改名復制,則命令如下:
[root@localhost ~]# cp cangls /tmp/bols #改名復制
如果復制的目標位置已經存在同名的文件,則會提示是否覆蓋,因為 cp 命令默認執行的是“cp -i”的別名,例如:
[root@localhost ~]# cp cangls /tmp/ cp:是否覆蓋"/tmp/cangls"?y #目標位置有同名文件,所以會提示是否覆蓋
復制目錄,其實復制目錄只需使用“-r”選項即可,例如:
[root@localhost ~]# mkdir movie #建立測試目錄 [root@localhost ~]# cp -r /root/movie/ /tmp/ #目錄原名復制