欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Linux-scp命令

Linux-scp命令

2025/4/27 3:37:34 来源:https://blog.csdn.net/qq_45688811/article/details/147404171  浏览:    关键词:Linux-scp命令

scp(Secure Copy Protocol)是基于 SSH 的安全文件传输命令,用于在本地和远程主机之间加密传输文件或目录。以下是详细用法和示例:


基本语法

scp [选项] 源文件 目标路径

常用选项

选项描述
-P 端口号指定 SSH 端口(默认 22)
-r递归复制目录(传输文件夹时必选)
-C启用压缩(节省带宽)
-v显示详细传输信息(调试用)
-p保留文件权限和时间戳
-i 密钥文件使用指定的 SSH 私钥文件

常见场景示例

1. 本地 → 远程
# 复制文件到远程主机的 /home/user 目录
scp local_file.txt user@remote_host:/home/user/# 指定 SSH 端口(如 2222)
scp -P 2222 local_file.txt user@remote_host:/path/# 复制整个目录
scp -r local_dir/ user@remote_host:/path/
2. 远程 → 本地
# 从远程主机下载文件到当前目录
scp user@remote_host:/path/remote_file.txt .# 从远程主机下载目录
scp -r user@remote_host:/path/remote_dir/ .
3. 远程 → 远程
# 直接在两台远程主机间传输(文件流经本地)
scp user@remote_host1:/path/file.txt user@remote_host2:/path/

高级用法

1. 使用 SSH 密钥认证
# 指定密钥文件(避免密码输入)
scp -i ~/.ssh/id_rsa local_file.txt user@remote_host:/path/
2. 限制传输带宽(单位:Kbit/s)
scp -l 1000 large_file.iso user@remote_host:/path/  # 限制为 1000 Kbit/s
3. 静默模式(不显示进度)
scp -q local_file.txt user@remote_host:/path/

注意事项

  1. 路径格式

    • 本地路径:/path/to/file./file
    • 远程路径:user@host:/path/to/file
  2. 权限问题

    • 确保目标路径有写入权限。
    • 若使用非默认 SSH 端口,必须通过 -P 指定。
  3. 文件名特殊字符

    • 若文件名含空格或特殊字符,用引号包裹路径:scp "file name.txt" user@host:/path/

替代工具推荐

  • rsync:更高效的文件同步工具,支持增量传输。
  • sftp:交互式文件传输,适合复杂操作。
  • rsync over SSH:结合 SSH 加密和 rsync 的高效性:
    rsync -avz -e 'ssh -p 2222' local_dir/ user@remote_host:/path/
    

若遇到问题,可通过 scp -v 查看详细日志排查错误。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词