歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux系統中用於復制的cp和scp命令使用解析

Linux系統中用於復制的cp和scp命令使用解析

日期:2017/3/1 17:32:24   编辑:Linux技術

cp命令
用法:cp [選項]... [-T] 源文件 目標文件
 或:cp [選項]... 源文件... 目錄
 或:cp [選項]... -t 目錄 源文件...
將源文件復制至目標文件,或將多個源文件復制至目標目錄。


長選項必須使用的參數對於短選項時也是必需使用的。
-a, --archive 等於-dR --preserve=all
--backup[=CONTROL 為每個已存在的目標文件創建備份
-b 類似--backup 但不接受參數
--copy-contents 在遞歸處理是復制特殊文件內容
-d 等於--no-dereference --preserve=links
-f, --force 如果目標文件無法打開則將其移除並重試(當 -n 選項
存在時則不需再選此項)
-i, --interactive 覆蓋前詢問(使前面的 -n 選項失效)
-H 跟隨源文件中的命令行符號鏈接
-l, --link 鏈接文件而不復制
-L, --dereference 總是跟隨符號鏈接
-n, --no-clobber 不要覆蓋已存在的文件(使前面的 -i 選項失效)
-P, --no-dereference 不跟隨源文件中的符號鏈接
-p 等於--preserve=模式,所有權,時間戳
--preserve[=屬性列表 保持指定的屬性(默認:模式,所有權,時間戳),如果
可能保持附加屬性:環境、鏈接、xattr 等
-c same as --preserve=context
--sno-preserve=屬性列表 不保留指定的文件屬性
--parents 復制前在目標目錄創建來源文件路徑中的所有目錄
-R, -r, --recursive 遞歸復制目錄及其子目錄內的所有內容
--reflink[=WHEN] 控制克隆/CoW 副本。請查看下面的內如。
--remove-destination 嘗試打開目標文件前先刪除已存在的目的地
文件 (相對於 --force 選項)
--sparse=WHEN 控制創建稀疏文件的方式
--strip-trailing-slashes 刪除參數中所有源文件/目錄末端的斜槓
-s, --symbolic-link 只創建符號鏈接而不復制文件
-S, --suffix=後綴 自行指定備份文件的後綴
-t, --target-directory=目錄 將所有參數指定的源文件/目錄
復制至目標目錄
-T, --no-target-directory 將目標目錄視作普通文件
-u, --update copy only when the SOURCE file is newer
than the destination file or when the
destination file is missing
-v, --verbose explain what is being done
-x, --one-file-system stay on this file system
-Z, --context=CONTEXT set security context of copy to CONTEXT
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出


默認情況下,源文件的稀疏性僅僅通過簡單的方法判斷,對應的目標文件目標文件也
被為稀疏。這是因為默認情況下使用了--sparse=auto 參數。如果明確使用
--sparse=always 參數則不論源文件是否包含足夠長的0 序列也將目標文件創文
建為稀疏件。
使用--sparse=never 參數禁止創建稀疏文件。


當指定了--reflink[=always] 參數時執行輕量化的復制,即只在數據塊被修改的
情況下才復制。如果復制失敗或者同時指定了--reflink=auto,則返回標准復制模式。


備份文件的後綴為"~",除非以--suffix 選項或是SIMPLE_BACKUP_SUFFIX
環境變量指定。版本控制的方式可通過--backup 選項或VERSION_CONTROL 環境
變量來選擇。以下是可用的變量值:


none, off 不進行備份(即使使用了--backup 選項)
numbered, t 備份文件加上數字進行排序
existing, nil 若有數字的備份文件已經存在則使用數字,否則使用普通方式備份
simple, never 永遠使用普通方式備份


有一個特別情況:如果同時指定--force 和--backup 選項,而源文件和目標文件
是同一個已存在的一般文件的話,cp 會將源文件備份。

例:


復制代碼代碼如下:
[root@localhost www]# cp -p test.rb /home/test #將test.rb copy到test目錄,並且保留原文件的屬性
[root@localhost www]# cp -r Dir/ /home/test #將Dir目錄copy到test目錄下
[root@localhost www]# cp -fr Dir/* /home/test #將Dir下面的所有文件強制copy到test目錄下
[root@localhost www]# cp test.rb{,.bak} #備份test.rb,並在尾部加上.bak後綴



scp命令
SCP 命令語法
scp [-1245BCpqrv] [-c cipher] [F ssh_config] [-I identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:] file1 […] [[suer@]host2:]file2

SCP 命令說明
Scp在主機間復制文件。他使用 ssh(1)作為數據傳輸。而且用同樣認證和安全性。 scp將在認證中請求輸入密碼所有的文件可能需要服務器和用戶的特別描述來指明文件將被復制到/從某台服務器。兩個遠程登錄的服務器間的文件復制是允許的。

SCP 命令選項

-1 強制scp 用協議1

-2 強制scp 用協議2

-4 強制scp用IPV4的網址

-6 強制scp用IPV6的網址

-B 選擇批處理模式(防止輸入密碼)

-C 允許壓縮。 標注-C到ssh(1)來允許壓縮

-c cipher選擇cipher來加密數據傳輸。這個選項直接傳遞到ssh(1)

-F ssh_config設定一個可變動的用戶配置給ssh.這個選項直接會被傳遞到ssh(1)

-i identity_file選擇被RSA認證讀取私有密碼的文件。這個選項可以直接被傳遞到ssh(1)

-l limit限制傳輸帶寬,也就是速度 用Kbit/s的速度

-o ssh_option 可以把ssh_config中的配置格式傳到ssh中。這種模式對於說明沒有獨立的scp文件中斷符的scp很有幫助。關於選項的如下。而他們的值請參看ssh_config(5)

-P port 指定連接遠程連接端口。注意這個選項需要寫成大寫的模式。因為-p已經早保留了次數和模式

-S program 指定一個加密程序。這個程序必須可讀所有ssh(1)的選項。

-p 指定修改次數,連接次數,還有對於原文件的模式

-q 把進度參數關掉

-r 遞歸的復制整個文件夾

-S program 指定一個加密程序。這個程序必須可讀所有ssh(1)的選項。

-V 冗余模式。 讓 scp 和 ssh(1) 打印他們的排錯信息, 這個在排錯連接,認證,和配置中非常有用。

例:

復制代碼代碼如下:
[root@localhost www]# scp -r [email protected]:/var/www/blog /home/www/blog #以tank用戶登錄並將服務器文件夾copy到本地
[root@localhost www]# scp /home/www/blog/index.php 192.16.1.108:/var/www/blog #將本地文件copy到服務器,添填寫用戶,默認當前用戶

使用指定端口從本地拷到遠程服務器

復制代碼代碼如下:
[root@localhost test]# scp -P 20022 -r ../vhost/ [email protected]:/home/test/

Copyright © Linux教程網 All Rights Reserved