凌峰创科服务平台

Linux本地上传文件到服务器,命令怎么用?

连接信息

无论使用哪种方法,您都需要准备以下信息:

Linux本地上传文件到服务器,命令怎么用?-图1
(图片来源网络,侵删)
  • 服务器 IP 地址或域名 ( 168.1.100server.com)
  • 用户名 ( root, ubuntu, ec2-user)
  • 密码 (或者 SSH 密钥,推荐使用密钥)
  • 目标路径 (文件上传到服务器的哪个目录, /home/ubuntu/uploads/)

使用 scp (Secure Copy) - 最简单直接

scp 是一个基于 SSH 协议的命令行工具,用于在本地和远程主机之间安全地复制文件,它的语法和 cp (复制) 命令很相似,非常容易上手。

上传单个文件

# 语法: scp [本地文件路径] [用户名@服务器IP:服务器目标路径]
# 示例: 将本地的 /home/user/docs/report.pdf 上传到服务器的 /home/ubuntu/ 目录下
scp /home/user/docs/report.pdf ubuntu@192.168.1.100:/home/ubuntu/

执行后,系统会提示您输入 ubuntu 用户的密码。

上传整个目录

使用 -r (recursive) 选项来递归地复制整个目录。

# 语法: scp -r [本地目录路径] [用户名@服务器IP:服务器目标路径]
# 示例: 将本地的 /home/user/my_project 目录上传到服务器的 /home/ubuntu/ 目录下
scp -r /home/user/my_project ubuntu@192.168.1.100:/home/ubuntu/

指定不同端口

如果服务器的 SSH 端口不是默认的 22,需要使用 -P 选项(注意是大写 P)。

Linux本地上传文件到服务器,命令怎么用?-图2
(图片来源网络,侵删)
# 示例: 通过 2222 端口上传文件
scp -P 2222 /home/user/docs/report.pdf ubuntu@192.168.1.100:/home/ubuntu/

使用 rsync - 最强大灵活

rsync (Remote Sync) 是一个更高级、更强大的文件同步工具,它不仅像 scp 一样可以复制文件,还可以增量同步,即只同步发生变化的文件,这在处理大文件或频繁同步时效率极高。

基本上传

# 语法: rsync [选项] [本地文件路径] [用户名@服务器IP:服务器目标路径]
# 示例: 将本地目录同步到服务器
rsync -avz /home/user/my_project/ ubuntu@192.168.1.100:/home/ubuntu/my_project/
  • -a (archive): 归档模式,等同于 -rlptgoD,保留文件的所有属性(权限、时间戳等),最常用。
  • -v (verbose): 详细模式,显示传输过程。
  • -z (compress): 传输过程中进行压缩,可以加快速度。

rsync vs scp 的核心优势

增量同步:假设你再次运行上面的 rsync 命令,它只会检查本地目录和服务器目录的差异,然后只上传那些被修改或新增的文件,这比 scp 重新复制整个目录要快得多。

删除源服务器上多余的文件:如果你想保持本地和服务器目录完全一致(包括删除服务器上本地已经不存在的文件),可以使用 --delete 选项。(请谨慎使用!)

# 示例: 强制保持服务器目录与本地完全一致
rsync -avz --delete /home/user/my_project/ ubuntu@192.168.1.100:/home/ubuntu/my_project/

这个命令会确保服务器上的 my_project 目录内容和本地的一模一样,如果本地某个文件被删除了,服务器上对应的文件也会被删除。

Linux本地上传文件到服务器,命令怎么用?-图3
(图片来源网络,侵删)

使用 sftp (SSH File Transfer Protocol) - 最交互式

sftp 是一个交互式的文件传输程序,它提供了一个类似 FTP 的命令行界面,但所有传输都是通过 SSH 加密的,当你需要先浏览服务器目录,或者进行更复杂的文件管理操作(如重命名、删除)时,sftp 非常方便。

连接到服务器

sftp [用户名]@[服务器IP]
# 示例
sftp ubuntu@192.168.1.100

连接成功后,你会看到 sftp> 提示符。

常用 sftp 命令

进入 sftp 会话后,可以使用以下命令:

  • lsls [远程目录]: 列出服务器当前目录下的文件。
  • cd [远程目录]: 切换服务器上的目录。
  • get [远程文件]: 从服务器下载文件到本地。
  • put [本地文件]: 从本地上传文件到服务器。
  • mkdir [远程目录名]: 在服务器上创建新目录。
  • rm [远程文件]: 删除服务器上的文件。
  • rmdir [远程目录名]: 删除服务器上的空目录。
  • lcd [本地目录]: 切换本地的目录。
  • lls: 列出本地当前目录下的文件。
  • byeexit: 退出 sftp 会话。

上传文件示例

$ sftp ubuntu@192.168.1.100
# 连接后...
sftp> cd /home/ubuntu/          # 切换到服务器的目标目录
sftp> put /home/user/docs/report.pdf  # 上传指定文件
Uploading /home/user/docs/report.pdf to /home/ubuntu/report.pdf
report.pdf              100%   50KB  50.0KB/s   00:00
sftp> bye                     # 退出

使用图形化工具 (GUI) - 最适合新手

如果你不习惯命令行,可以使用支持 SFTP/SCP 协议的图形化文件管理器。

使用 Nautilus (GNOME 桌面环境)

  • 打开文件管理器 (Nautilus)。
  • 在地址栏输入 sftp://[用户名]@[服务器IP],然后按回车。
    • sftp://ubuntu@192.168.1.100
  • 系统会提示你输入密码,验证成功后,服务器的文件就会像本地磁盘一样显示在侧边栏或主窗口中,你可以直接拖拽文件进行上传和下载。

使用其他文件管理器 (Dolphin, Thunar 等)

大多数现代 Linux 文件管理器都支持此功能,通常在 "连接到服务器" 或类似的选项中找到。

使用专用客户端 (如 FileZilla)

FileZilla 是一个跨平台的免费 FTP 客户端,也完美支持 SFTP。

  • 下载并安装 FileZilla。
  • 新建站点,协议选择 "SFTP"。
  • 填入主机、用户名、密码。
  • 点击 "快速连接"。
  • 连接成功后,左侧是你的本地文件,右侧是服务器的文件,直接拖拽即可传输。

总结与对比

工具 特点 优点 缺点 适用场景
scp 简单、直接、基于SSH 语法简单,无需额外安装 每次都完整复制,无法增量同步 快速上传少量文件或整个目录
rsync 强大、灵活、增量同步 传输效率高,支持保留属性、删除多余文件 语法比 scp 稍复杂 频繁同步大目录、备份、部署代码
sftp 交互式、类FTP 功能全面,可先浏览再操作,可管理文件 需要进入交互式会话,不适合脚本自动化 需要进行文件管理(重命名、删除等)时
GUI工具 可视化、拖拽 直观易用,适合新手 依赖图形界面,效率不如命令行 不熟悉命令行的用户,或需要直观操作时

推荐选择:

  • 日常快速上传:用 scp
  • 开发/部署/频繁同步:强烈推荐 rsync,它是专业运维和开发者的首选。
  • 需要浏览服务器再上传:用 sftp
  • 不习惯命令行:用文件管理器或 FileZilla。
分享:
扫描分享到社交APP
上一篇
下一篇