scp 的功能是安全地进行文件复制。

用法

        scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit]                    [-o ssh_option] [-P port] [-S program] source ... target

scp 在网络上的主机之间复制文件。它使用 ssh 进行数据传输,并使用与 ssh 相同的身份验证并提供相同的安全性。如果需要身份验证,scp 将要求输入密码或密码短语。源和目标可以指定为本地路径名、具有 [user@]host:[path] 形式的可选路径的远程主机或 scp://[user@]host[:port] 形式的 URI [/path]。可以使用绝对或相对路径名使本地文件名显式,以避免 scp 将包含“:”的文件名视为主机说明符。在两个远程主机之间进行复制时,如果使用 URI 格式,则只能在使用 -3 选项的情况下在目标上指定端口。

选项

        -3

                两个远程主机之间的副本通过本地主机传输。如果没有此选项,数据将直接在两                    个远程主机之间复制。请注意,此选项会禁用进度表并为第二台主机选择批处理                    模式,因为 scp 无法要求两台主机的密码或密码短语。

        -4

                强制 scp 只能使用 IPV4 地址。

        -6

                强制 scp 只能使用 IPV6 地址。

        -B

                选择批处理模式(阻止要求输入密码或密码短语)。

        -C

                允许压缩。将 -C 传给 ssh 来允许压缩。

        -c cipher

                选择用于加密数据传输的 cipher。 此选项直接传递给 ssh。

        -F ssh_config

                为 ssh 指定替代的每个用户的配置文件。

        -i identity_file

                选择从中读取用于公钥认证的身份(私钥)的文件。这个选项直接传给ssh。

        -J destination

                通过首先与 destination 描述的跳转主机建立 scp 连接,然后从那里建立到最终                      destination 的 TCP 转发,连接到目标主机。可以用逗号分隔指定多个跳转。这                      是指定 ProxyJump 配置指令的快捷方式。 这个选项直接传给ssh。

        -l limit

                限制使用带宽,单位是 Kbit/s。

        -o ssh_option

                可用于以 ssh_config 中使用的格式将选项传递给 ssh。这对于指定没有单独 scp                    命令行标志的选项很有用。

        -P port

                指定要连接到远程主机上的端口。

        -p

                保留原始文件的修改时间、访问时间和模式。

        -q

                安静模式:禁用进度表以及来自 ssh 的警告和诊断消息。

        -r

                递归复制整个目录。请注意,scp 遵循树遍历中遇到的符号链接。

        -S program

                用于加密连接的程序名称。该程序必须了解 ssh 选项。

        -T

                禁用严格的文件名检查。默认情况下,将文件从远程主机复制到本地目录时,scp                  会检查接收到的文件名是否与命令行上请求的文件名匹配,以防止远程端发送意                    外或不需要的文件。由于各种操作系统和 shell 解释文件名通配符的方式不同,这                  些检查可能会导致所需文件被拒绝。此选项以完全信任服务器不会发送意外文件                    名为代价禁用这些检查。

        -v

                详细模式。使 scp 和 ssh 打印有关其进度的调试消息。这有助于调试连接、身份                    验证和配置问题。

使用示例:

scp local_file remote_name@remote_ip:remote_dir

这个命令的功能是将源文件复制到目的目录:其中local_file是源文件名,remote_name是目的端的用户名,如果是root也可忽略,remote_dir是目的端的目录名。

scp local_file remote_name@remote_ip:remote_file

这个命令的功能是将源文件复制为目的文件:其中remote_file是目的端的文件名,其他与上边的命令一致。

scp -r local_dir remote_name@remote_ip:remote_dir

这个命令的功能是将源目录复制到目的端:注意一定要加 -r 选项。其中local_dir是源目录名,其他与上边命令一致。

如果是反方向复制,只需把两个参数顺序调换即可:

scp remote_name@remote_ip:remote_dir local_file

scp remote_name@remote_ip:remote_file local_file

scp -r remote_name@remote_ip:remote_dir local_dir

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐