Linux-scp命令

打印 上一主题 下一主题

主题 1771|帖子 1771|积分 5313

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

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

根本语法

  1. scp [选项] 源文件 目标路径
复制代码

常用选项

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

1. 当地 → 长途

  1. # 复制文件到远程主机的 /home/user 目录
  2. scp local_file.txt user@remote_host:/home/user/
  3. # 指定 SSH 端口(如 2222)
  4. scp -P 2222 local_file.txt user@remote_host:/path/
  5. # 复制整个目录
  6. scp -r local_dir/ user@remote_host:/path/
复制代码
2. 长途 → 当地

  1. # 从远程主机下载文件到当前目录
  2. scp user@remote_host:/path/remote_file.txt .
  3. # 从远程主机下载目录
  4. scp -r user@remote_host:/path/remote_dir/ .
复制代码
3. 长途 → 长途

  1. # 直接在两台远程主机间传输(文件流经本地)
  2. scp user@remote_host1:/path/file.txt user@remote_host2:/path/
复制代码

高级用法

1. 使用 SSH 密钥认证

  1. # 指定密钥文件(避免密码输入)
  2. scp -i ~/.ssh/id_rsa local_file.txt user@remote_host:/path/
复制代码
2. 限定传输带宽(单位:Kbit/s)

  1. scp -l 1000 large_file.iso user@remote_host:/path/  # 限制为 1000 Kbit/s
复制代码
3. 静默模式(不表现进度)

  1. scp -q local_file.txt user@remote_host:/path/
复制代码

注意事项


  • 路径格式

    • 当地路径:/path/to/file 或 ./file
    • 长途路径:user@host:/path/to/file

  • 权限题目

    • 确保目的路径有写入权限。
    • 若使用非默认 SSH 端口,必须通过 -P 指定。

  • 文件名特殊字符

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


替代工具推荐



  • rsync:更高效的文件同步工具,支持增量传输。
  • sftp:交互式文件传输,适合复杂操作。
  • rsync over SSH:结合 SSH 加密和 rsync 的高效性:
    1. rsync -avz -e 'ssh -p 2222' local_dir/ user@remote_host:/path/
    复制代码
若遇到题目,可通过 scp -v 查察详细日记排查错误。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南飓风

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表