在Mac系统向Linux服务器上传文件时,用户可根据文件大小、操作习惯及安全需求选择合适的方式,以下是几种主流方法的详细操作步骤、适用场景及注意事项,帮助高效完成文件传输任务。

常用文件上传方法及操作步骤#### SCP(Secure Copy)命令行传输SCP基于SSH协议,通过加密通道传输文件,适合小文件或单次上传,操作简单且无需额外安装工具(Mac系统默认支持)。
适用场景:快速上传少量文件,无需交互式操作。
操作步骤:
- 基础上传:在Mac终端执行以下命令,将本地文件(如
/Users/user/Documents/test.txt)上传至服务器(IP为168.1.100,用户为root,目标路径为/home/):scp /Users/user/Documents/test.txt root@192.168.1.100:/home/
- 上传整个目录:添加
-r参数(递归传输目录),例如上传Documents文件夹:scp -r /Users/user/Documents root@192.168.1.100:/home/
- 指定端口:若服务器SSH端口非默认22(如2222),需用
-P(大写)指定:scp -P 2222 /Users/user/Documents/test.txt root@192.168.1.100:/home/
- 压缩传输:添加
-C参数压缩文件,适合传输大文本文件,减少耗时:scp -C /Users/user/Documents/largefile.txt root@192.168.1.100:/home/
注意事项:需提前确认服务器SSH服务已启动,且用户具备目标目录的写入权限。
SFTP(SSH File Transfer Protocol)交互式传输SFTP是SSH的子协议,提供类似FTP的交互式命令行界面,支持文件/目录管理(如上传、下载、删除),适合批量操作或需要校验传输结果的场景。
适用场景:需频繁上传/下载文件,或对传输过程有交互式控制需求。
操作步骤:
- 连接服务器:在Mac终端输入以下命令,输入密码登录服务器:
sftp root@192.168.1.100
- 上传文件:登录后使用
put命令上传本地文件,put /Users/user/Documents/test.txt /home/
- 上传目录:添加
-r参数递归上传目录:put -r /Users/user/Documents /home/
- 查看传输状态:上传时可使用
ls(服务器端文件列表)、lcd(本地目录切换)等命令辅助操作,lcd /Users/user/Downloads # 切换本地目录 put file.zip /home/ # 上传当前目录下的file.zip
- 断开连接:输入
exit或quit退出SFTP会话。
注意事项:SFTP需服务器启用SSH服务(通常与SCP共用SSH端口),且支持密码或密钥认证。
rsync(Remote Sync)增量同步传输rsync通过差异化算法仅传输变化的文件块,适合大文件、目录或定期同步场景,支持增量备份和压缩传输,效率较高。
适用场景:同步大型项目代码、备份目录,或需断点续传的场景。
操作步骤:

- 基础同步:将本地目录同步至服务器目标路径(若目标目录已存在同名文件,会根据更新时间覆盖):
rsync -avz /Users/user/project/ root@192.168.1.100:/home/project/
参数说明:
-a(归档模式,保留权限/时间戳等)、-v(显示传输详情)、-z(压缩传输)。 - 排除特定文件:添加
--exclude参数跳过不需要上传的文件(如.git目录):rsync -avz --exclude='.git' /Users/user/project/ root@192.168.1.100:/home/project/
- 断点续传:传输中断后重新执行相同命令,rsync会从断点继续传输(需添加
--partial参数保留未完成文件):rsync -avz --partial /Users/user/largefile.zip root@192.168.1.100:/home/
注意事项:rsync需服务器安装rsync服务(默认多数Linux系统已预装),且目标路径需有写入权限。
图形化工具传输(适合新手)若不熟悉命令行,可通过图形化工具实现拖拽上传,直观易用。
常用工具对比:
| 工具名称 | 支持协议 | 优点 | 适用场景 |
|---|---|---|---|
| Cyberduck | SFTP/FTP/S3 | 跨平台,支持云存储,界面简洁 | 需连接云存储或图形化操作 |
| FileZilla | SFTP/FTP | 开源免费,功能丰富,支持队列 | 常规文件上传/下载 |
| Transmit | SFTP/FTP/WebDAV | 高性能,支持断点续传,界面美观 | 需高效传输体验 |
操作步骤(以FileZilla为例):

- 下载并安装FileZilla(官网提供Mac版本)。
- 打开FileZilla,点击“文件”→“站点管理器”,新建站点,输入服务器IP、用户名、密码及端口(默认22)。
- 连接成功后,左侧显示本地文件(Mac文件系统),右侧显示服务器文件目录。
- 拖拽本地文件至服务器目标目录,等待传输进度条完成即可。
通用注意事项权限确认:确保登录用户对服务器目标目录有写入权限(可通过chmod修改目录权限,如chmod 755 /home/)。
- 网络连通性:上传前通过
ping 192.168.1.100或ssh root@192.168.1.100测试网络是否可达。 - 密钥认证(推荐):为提升安全性,建议使用SSH密钥对代替密码认证(Mac通过
ssh-keygen生成密钥,公钥通过ssh-copy-id上传至服务器)。 - 防火墙设置:若服务器防火墙阻止SSH端口(默认22),需开放端口(如
iptables -A INPUT -p tcp --dport 22 -j ACCEPT)。
相关FAQs**Q1:上传文件时提示“Permission denied”,如何解决?**
A:通常由权限不足导致,可按以下步骤排查:
- 确认登录用户对服务器目标目录是否有写入权限(执行
ls -ld /目标目录,查看权限是否包含w)。 - 若目标目录属主非当前用户,可通过
chown 用户名:组名 /目标目录修改所有者。 - 检查文件本身权限(如
chmod 644 /目标文件),确保用户可写。
Q2:大文件上传中断,如何续传?
A:根据使用的工具选择续传方式:
- 命令行工具:使用
rsync --partial参数(如rsync -avz --partial /本地文件 用户@服务器:/目标路径),可自动从断点继续传输。 - 图形化工具:FileZilla等工具默认支持断点续传,重新拖拽中断的文件即可自动续传;若不支持,可尝试开启“传输设置”中的“断点续传”选项。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/48605.html