inux 下的CP命令及SCP命令

cp命令
該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,就如同DOS下的copy命令一樣,功能非常強大。
語法: cp [選項] 源文件或目錄 目標文件或目錄
說明:該命令把指定的源文件複製到目標文件或把多個源文件複製到目標目錄中。
該命令的各選項含義如下:
- a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,並遞歸地拷貝目錄,其作用等於dpR選項的組合。
- d 拷貝時保留鏈接。
- f 刪除已經存在的目標文件而不提示。
- i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是交互式拷貝。
- p 此時cp除複製源文件的內容外,還將把其修改時間和訪問權限也複製到新文件中。
- r 若給出的源文件是一目錄文件,此時cp將遞歸複製該目錄下所有的子目錄和文件。此時目標文件必須爲一個目錄名。
- l 不作拷貝,只是鏈接文件。
需要說明的是,爲防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名是一個已存在的文件名,用cp命令拷貝文件後,這個文件就會被新拷貝的源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。
$ cp - i exam1.c /usr/wang/shiyan1.c
該命令將文件exam1.c拷貝到/usr/wang 這個目錄下,並改名爲 shiyan1.c。若不希望重新命名,可以使用下面的命令:
$ cp exam1.c /usr/ wang/
$ cp - r /usr/xu/ /usr/liu/ 將/usr/xu目錄中的所有文件及其子目錄拷貝到目錄/usr/liu中。

scp命令
在其他主機上覆制一個文件或者文件夾用遠程複製命令再好不過了前提是你要知道其他主機的用戶名,密碼以及你要複製的文件的路徑,如果不知道路徑可以先遠程登錄然後退出。
命令格式爲:
  scp -r [email protected]:~/Desktop/Class .

    scp 是遠程複製的命令 -r是複製整個文件夾,假設我有個Class文件夾在Desktop(桌面)上,username是你要複製文件所在的主機用戶名, 192.168.12.12是那個太主機的IP,後面要有個: 如果知道文件的絕對路徑就直接加絕對路徑,比如/root/aaa ,在root下有個aaa文件夾。 如果不知道絕對路徑就寫相對路徑,比如這裏的~/Desktop/Class,注意前面的~ 後面跟了個 . 可能大家沒有注意,這個‘ . ’是代表當前目錄,和一般的cp命令一樣,如果你想放在其他目錄就寫其他的目錄名,當然也有相對路徑和絕對路徑之分,和前面一樣。
       上面是複製文件夾命令,如果想要複製文件命令就不要-r 命令了,Class後面寫上文件名,當然前提是文件在Class中,如果想複製多個文件就用通配符 * 比如Class/* 那麼Class中的所有文件就複製過來了,注意這裏*只能複製過來文件,而文件夾是不能複製過來的。
如果想將本機的文件或者文件夾複製到目標主機,命令格式不變就是後面的路徑顛倒過來
        scp -r filename [email protected]:~/Desktop/Class
將本機的文件名寫在前面,目標路徑寫在後面,這是複製文件夾的,複製文件同樣的格式不用加-r
        當然不管是從哪裏複製到哪裏,都要輸入密碼才能成功。

 

 

自己寫了一個 cp -avf .. .., 總是提示是否要override,莫名其妙,-f參數不就是不提示嗎?

後來才發現 在~/.bashrc中有cp的aliase

vi ~/.bashrc

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

 

崩潰,注掉就可以覆蓋copy不用提示了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章