服务器文件传输指令速查
写这个post的起因是主包试图从github上拉一个数据集到服务器,拷打gemini用git lfs结果频频失败,最后发现github上的数据集就是损坏的。决定来都来了,干脆学一下拉取文件的方法。(其实前后文并无关系)
Linux 服务器文件传输与拉取速查 (SCP, Wget, Git LFS)
1. SCP (Secure Copy) —— 局域网/远程传输
场景:本地电脑(Windows/Mac)已经下好了数据集,需要“推”送到服务器。
核心逻辑:基于 SSH 协议的加密传输。(Secure Shell,远程服务器用的一种传输/登录的协议;然后提供了一些基于这个安全隧道的工具比如scp、sftp方便像控制本地电脑一样控制远程服务器)
常用命令
1 | # 1. 从本地上传到服务器 (在本地终端执行) |
注意
- 空格处理:如果路径中有空格,Windows 建议用双引号
""括起来;Linux 则需在空格前加反斜杠\。 - 断网重传:SCP 不支持断点续传。如果文件巨大(>10GB),建议改用
rsync -P。
既然你已经把 SSH 的协议本质和密码学逻辑盘清楚了,那在博客里加上 SFTP 这一节会显得你的技术视野非常完整。
SFTP 不仅仅是“另一个传输工具”,它是 “交互式、可断点续传、更现代” 的文件管理标准。以下是为你更新后的 Markdown 源码,我把 SFTP 放在了 SCP 之后,并同步更新了最后的总结表格。
Markdown
title: 服务器文件传输指令速查
date: 2026-03-25 18:20:00
tags: [Linux, SSH, SCP, SFTP, Git-LFS]
写这个 post 的起因是试图从 GitHub 上拉一个数据集到服务器,拷打 Gemini 用 Git LFS 结果频频失败,最后发现 GitHub 上的数据集指针是损坏的。决定来都来了,干脆学一下拉取文件的方法。(其实前后文并无关系)
Linux 服务器文件传输与拉取速查 (SCP, SFTP, Wget, Git LFS)
1. SCP (Secure Copy) —— 极简远程拷贝
场景:本地电脑(Windows/Mac)已经下好了数据集,需要快速“推”送到服务器。
核心逻辑:基于 SSH 协议。SSH 是远程服务器的一种加密通信协议,它建立了一条安全隧道,而 SCP 就是在这个隧道里跑的“货车”。
常用命令
1 | # 1. 从本地上传到服务器 (在本地终端执行) |
注意
- 无断点续传:如果传到 99% 断网了,SCP 必须重头再来。
- 空格处理:Windows 路径建议用双引号
""括起来。
2. SFTP (SSH File Transfer Protocol) —— 交互式文件管理
场景:需要频繁查看服务器目录、删除文件、或者在不稳定的网络下传输超大数据。
核心逻辑:同样基于 SSH,但它是一个独立的子协议。相比 SCP 的“一锤子买卖”,它更像是一个“在线网盘”。
常用命令
1 | # 1. 建立连接 (在本地终端执行) |
注意
- 断点续传:SFTP 支持
reput和reget,断网后可以接着传。 - GUI 友好:FileZilla、WinSCP 甚至 VS Code 的同步插件,底层走的都是 SFTP。
3. Wget —— 网页文件收割机
场景:在 GitHub、论文官网或 Google Drive 看到直链,想直接在服务器上“拉”下来。
核心逻辑:非交互式命令行下载工具,支持 HTTP/HTTPS/FTP。
常用命令
1 | # 1. 基础下载 |
注意
- 404 错误:如果链接指向的是 GitHub 私有仓库或 LFS 文件,直接 wget 会报 404。此时需要手动下载到本地再用 SCP 传。
- 双引号:如果 URL 里包含
&或?等特殊符号,一定要用双引号把 URL 包起来。
4. Git LFS (Large File Storage) —— 优雅的“占位符”管理
场景:GitHub 上的数据集、模型权重(.pth/.bin)。如果你 clone 下来发现文件只有 1KB,那它就是 LFS 指针。
核心逻辑:Git 只存指针(Text),真正的大文件(Binary)存在后端存储服务器。
常用命令
1 | # 1. 初始化 (每台新服务器只需执行一次) |
注意
- 网络阻断:国内访问 LFS 的 AWS 存储节点极慢。如果
git lfs pull没反应,最快的方法是:浏览器手动下载 -> SCP 上传。
📊 总结与对比
| 工具 | 协议底层 | 核心优势 | 缺点 | 推荐指数 |
|---|---|---|---|---|
| SCP | SSH (RCP) | 速度快、指令简单 | 不支持续传、功能单一 | ⭐⭐⭐⭐⭐ |
| SFTP | SSH (SFTP) | 支持续传、可交互管理 | 协议开销略大于 SCP | ⭐⭐⭐⭐⭐ |
| Wget | HTTP/S | 直接拉取公网资源 | 无法处理复杂鉴权 | ⭐⭐⭐⭐ |
| Git LFS | Git 自研 | 解决 Git 存不动大文件的问题 | 极其依赖网络环境 | ⭐⭐⭐ |
