当前位置: 首页 > news >正文

命令行式本地与服务器互传文件

文章目录

    • 1. 背景
    • 2. 传输方式
      • 2.1 SCP 协议传输
      • 2.2 SFTP 协议传输

命令行式本地与服务器互传文件

1. 背景

多设备协同工作中,因操作系统的不同,我们经常需要将另外一个系统中的文件传输到本地PC进行浏览、编译。多设备文件互传,在嵌入式开发中也经常会遇到,本篇介绍命令行下文件传输的方式。

2. 传输方式

服务器与本地PC之间互传文件,有多种方式,常见的有使用tftpd小工具,mobaxterm ide自带的"upload"和“download"按钮,securt crt安装的时候提供的secure fx工具。但是很多时候,一些环境不允许安装这些第三方软件,这时候就只能使用最原始的命令行进行交互了。

2.1 SCP 协议传输

SCP(Secure Copy Protocol):基于SSH协议的安全文件复制工具,用于在本地主机和远程主机之间或两台远程主机之间安全地复制文件。

  • 指令格式

    scp [选项] [源文件/目录] [目标路径]
    
    • 源文件/目录:可以是本地路径或远程路径。
    • 目标路径:可以是本地路径或远程路径。
  • upload 文件到服务器

    • 单文件传输
    SCP F:/学习/cjson/cJSON/README.md root@服务器IP地址:/root/project/001_json_c_learn/
    

在这里插入图片描述

  • 整个目录传输
scp -r F:/学习/cjson/cJSON/ root@IP地址:/root/project/002_test

在这里插入图片描述

  • download文件到本地

    • 单文件传输
    scp root@IP地址:/root/project/001_json_c_learn/README.md F:/学习/cjson/cJSON/
    

    在这里插入图片描述

    • 整个目录传输
    scp -r root@IP地址:/root/project/001_json_c_learn/ F:/学习/cjson/cJSON/
    

在这里插入图片描述

2.2 SFTP 协议传输

SFTP(SSH File Transfer Protocol):基于SSH的安全文件传输协议,提供加密的数据传输和身份验证,确保文件传输过程的安全性。

  • 指令连接

    # 默认端口连接
    sftp username@host_ip
    
    • username:远程服务器用户名。
    • host_ip:服务器IP地址或域名。
    • 示例:sftp root@192.168.1.100
    # 指定端口连接
    sftp -P port_number username@host_ip
    
    • -P:指定SSH端口(非默认22)。
    • 示例:sftp -P 48101 root@192.168.1.100
    # 密钥认证连接
    sftp -i /path/to/private_key username@host_ip
    
    • -i:指定私钥文件路径(需提前生成密钥对并将公钥配置服务器)。
    • 示例:sftp -i ~/.ssh/id_rsa user@192.168.1.100
  • 上传文件到服务器(put)

    • 指令格式

      put local_file_path [remote_file_path]
      
    • 将本地文件上传到远程服务器。

    • 若未指定remote_file_path,默认上传到当前远程目录(可以使用pwd查看默认远程目录)。

在这里插入图片描述

  • 下载文件到本地 (get)

    • 指令格式

      get remote_file_path [local_file_path]
      
    • 将远程文件下载到本地。

    • 若未指定local_file_path,默认下载到当前本地目录。

在这里插入图片描述

  • 递归传输目录

    • 上传目录(递归)

      put -r local_directory_path [remote_directory_path]
      
      • 递归上传整个目录及其子文件。
      • 示例:put -r /home/user/projects /var/www/
    • 下载目录(递归)

      get -r remote_directory_path [local_directory_path]
      
      • 递归下载整个目录及其子文件。
      • 示例:get -r /var/log /backup/logs/
  • 批量传输

    mput *.txt  # 上传当前目录所有.txt文件
    mget *.log  # 下载远程目录所有.log文件
    
  • 目录与文件管理

    • 切换远程目录cd remote_directory
    • 切换本地目录lcd local_directory
    • 查看远程目录ls
    • 查看本地目录lls
    • 删除远程文件rm remote_file
    • 重命名远程文件rename old_name new_name
    • 退出SFTPexitquit
      `
    • 查看远程目录ls
    • 查看本地目录lls
    • 删除远程文件rm remote_file
    • 重命名远程文件rename old_name new_name
    • 退出SFTPexitquit
    • 查看帮助help?
http://www.dtcms.com/a/224571.html

相关文章:

  • 5G-A:开启通信与行业变革的新时代
  • Jmeter requests
  • 通过mqtt 发布温湿度
  • hot100 -- 1.哈希系列
  • AI炼丹日志-26 - crawl4ai 专为 AI 打造的爬虫爬取库 上手指南
  • 第三方软件评测机构如何助力软件品质提升及企业发展?
  • Baklib知识中台驱动服务升级
  • Java基础 Day26
  • android 媒体框架之MediaCodec
  • leetcode hot100刷题日记——31.二叉树的直径
  • [GHCTF 2025]SQL???
  • leetcode hot100刷题日记——32.杨辉三角
  • CppCon 2014 学习: The Implementation of Value Types
  • 深入理解 Java 中的 Unsafe 类:原理、应用与风险
  • Java并发编程实战 Day 1:Java并发编程基础与线程模型
  • [SLAM自救笔记0]:开端
  • 字符串索引、幻读的解决方法
  • 玩客云WS1608控制LED灯的颜色
  • RLHF奖励模型的训练
  • 【Qt】EventFilter,要增加事件拦截器才能拦截到事件
  • 数据库只更新特定字段的两种方式(先读后写 vs. 动态组织 SQL)-golang SQLx 实现代码(动态组织 SQL)
  • 【设计模式-4.6】行为型——状态模式
  • 电路学习(二)之电容
  • Win10 doccano pip安装笔记
  • 【深度学习】16. Deep Generative Models:生成对抗网络(GAN)
  • STM32CubeMX串口配置
  • LeetCode[257]二叉树的所有路径
  • 【图像处理入门】3. 几何变换基础:从平移旋转到插值魔法
  • 基于开源AI大模型AI智能名片S2B2C商城小程序源码的销售环节数字化实现路径研究
  • 接口性能优化