Linux基礎命令——cp簡介

問世間情為何物,直教人生死相許

QQ拼音截圖未命名21

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

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94805

(0)
DPingDPing
上一篇 2018-04-03
下一篇 2018-04-03

相關推薦

欧美性久久久久