- 單源復制:cp[OPTION]…?[-T]?SOURCE(源,一個文件)?DEST(目標)
- 如果DEST不存在:則復制為兩步,先創建此文件(或文件夾),并將源文件(或文件夾)里的數據填充到該文件(或文件夾)中
- ?如果DEST存在:
- 如果DEST是非目錄文件,則覆蓋目標文件,直接回車等于取消命令,需要輸入“y”
- 如果DEST是目錄文件,則先在DEST目錄下創建一個與源文件同名的文件
- 多源復制:cp[OPTION]…?..?DIRECTORY;cp?[OPTION]…?-t?DIRECTORY?SOURCE…(少用)
- 如果源是多個文件
- DEST不存在或為文件:錯誤
- 如果DEST是目錄文件:分別復制每一個文件至目標目錄中,并保持原名
- ?如果源是目錄(必須使用-r)
- 目標不存在:
- cp -r /game/sheng /root/sheng4,將/sheng復制到/root下并且改名為sheng4目錄,/sheng4之前是沒有的
- 如果DEST存在:
- 如果DEST是非目錄文件,錯誤
- 如果DEST是目錄文件,在目標目錄文件夾下新建與原目錄同名的目錄,并將SRC目錄中的內容填充到新目錄中
- 注意:如果源目錄名和目標目錄中的有些子目錄名相同,這些相同名字的目錄中,兩兩會合并為一個目錄并且數據為并集
- 目標不存在:
- 如果源是多個文件
- cp的選項:
- -i:交互式復制,即覆蓋之前提醒用戶確認是否覆蓋(在root用戶下操作,cp別名成了cp -i,避免root誤操作,普通用戶沒有別名)
- -v:顯示復制的過程(一般拷貝較大文件時)
- -f:強制覆蓋目標文件,當一個普通用戶對目錄擁有完全的控制權限(例如自己的家目錄),可以對目錄下其他用戶的包括root的文件進行rm操作,和強制覆蓋cp -f操作(強制覆蓋實質上是先刪除后復制文件)
- -r| -R:遞歸復制目錄到目標
- -a | –archive歸檔復制,用于備份,相當于 :-dR –preserve=all
- -d:–no-dereference –preserv=links,在復制軟連接的時候,名字是軟連接的名字,數據則是真實文件的數據,此選項表示不復制原文件,只復制鏈接名
- –preserve=mode:權限 | timestamp:時間戳 | ownership:所屬主組 | all:全部,在復制的時候文件的元數據的時間戳所屬主組等都有可能發生變化,此選項能在復制的時候保留源文件的制定的屬性
- -p:等同–preserve=mode,ownership,timestamp
- 注意:復制文件的時保留元數據與權限有關系,權限不夠時是不能保留其元數據信息的
- 注意: 在復制的時候,cp -r /dir1/dir2/.*/dir3,這樣會把dir1中的內容全部復制到dir3中,因為.*匹配到了..
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94805