常用命令
复制目录到远程主机:
scp -r ./src/folder hostname:/tmp/dst/folder
注意事项:
1)scp 目前无法通过比较时间戳来决定是否复制文件,需要使用其他方法。
语法格式
scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2
命令描述
命令scp在网络上的主机之间复制文件。 它使用ssh(1)进行数据传输,并使用相同的身份验证以及提供与ssh(1)相同的安全性。 如果需要进行身份验证,scp会要求输入密码或密码短语。
文件名可以包含用户和主机规范,以指示要将文件复制到该主机,或从该主机复制该文件。 可以使用绝对路径名或相对路径名显式本地文件名,以避免scp将包含“:”的文件名视为主机说明符。还允许两个远程主机之间的副本。
命令选项
-1
强制scp使用版本1协议
-2
强制scp使用版本2协议
-3
两个远程主机之间的副本通过本地主机传输。 如果没有此选项,数据将直接在两个远程主机之间复制。 请注意,此选项会禁用进度表。
-4
强制scp仅使用IPv4地址。
-6
强制scp仅使用IPv6地址。
-B
选择批处理模式(防止要求输入密码或密码)。
-C
压缩启用。 将-C标志传递给ssh(1)以启用压缩。
-c cipher
选择用于加密数据传输的密码。 此选项直接传递给ssh(1)。
-F ssh_config
为ssh指定备用的每用户配置文件。 此选项直接传递给ssh(1)。
-i identity_file
选择从中读取公钥身份验证的标识(私钥)的文件。 此选项直接传递给ssh(1)。
-l limit
限制使用的带宽,以Kbit/s为单位。
-o ssh_option
可用于以ssh_config(5)中使用的格式将选项传递给ssh。 这对于指定“没有单独的scp命令行标志”的选项很有用。有关下面列出的选项及其可能值的完整详细信息,请参阅ssh_config(5)。
-P port
指定要在远程主机上连接的端口。 请注意,此选项使用大写“P”编写,因为-p已保留用于保留文件的时间和模式。
-p
保留原始文件的修改时间、访问时间、模式。
-q
安静模式:禁用进度表以及来自ssh(1)的警告和诊断消息。
-r
递归复制整个目录。 请注意,scp遵循树遍历中遇到的符号链接。
-S program
用于加密连接的程序名称。 该程序必须能够理解ssh(1)选项。
-v
详细模式。 导致scp和ssh(1)打印有关其进度的调试消息。 这有助于调试连接,身份验证和配置问题。
附加说明
退出状态
0 成功
>0 发生错误
相关手册
sftp(1), ssh(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), ssh_config(5), sshd(8)
参考文献
man 1 scp, Version 17.4p1-10
bash – Copying the newest files – Unix & Linux Stack Exchange