mirror of
https://github.com/nyakang/nyaterm.git
synced 2026-11-06 16:07:55 +00:00
The migrated prose leaned on a small set of constructions and repeated them
until they stopped carrying information. Across ~3.7k lines the source had 78
uses of "适合", 63 of "如果你", and 34 contrastive "而不是" clauses, most of
them attached to bullet lists that restated the feature name.
What changed:
- Replaced the "适合场景 / 适合:" tail hanging off nearly every section with
either a plain sentence or nothing. "适合" is now 0, "如果你" is 0, and the
18 remaining "而不是" clauses each rule out an assumption a reader would
actually make (a rejected password is not truncated; a font name is not a
bundled file; a decoder panic must not exit silently).
- Removed the closing editorial lines that asserted significance without adding
information ("这也是 NyaTerm 和普通多标签终端差异较大的地方"), and the
meta-commentary where the docs explained their own conventions.
- Dropped the relative time anchors that were already going stale: "新的 SFTP
后端", "较新的工作区", "现在可以", "Newer Agent workflows".
- Deleted the "如果你准备录制文档素材" passage, which told the reader how to
stage screenshots for the docs rather than how to use the recorder.
- Removed seven `:::tip Screenshot suggestion` blocks that shipped only in the
English pages. They were internal authoring notes and pointed at a
/img/docs/ tree and scripts/demo-*.sh files that do not exist in this repo.
- Dropped "推荐的工作流组合", four permutations of features documented
elsewhere, and gave the synchronized input group one home instead of the
three partial copies it had across two pages.
- Rewrote the cloud-sync conflict choices to lead with what is lost, since
"适合:你确认云端版本才是应该保留的版本" buried the fact that local
unsynced changes are discarded.
Also closes the remaining English gaps found while doing this: selection and
bulk operations, content-fingerprint upload, two FAQ entries, and two
quick-start steps existed only in Chinese. Chinese and English now carry the
same heading count on every page.
Verified with `pnpm --dir docs-site build` (both locales) and by re-resolving
all 22 cross-page anchors against the generated heading ids.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
220 lines
8.4 KiB
Markdown
220 lines
8.4 KiB
Markdown
# SFTP 文件传输
|
||
|
||
NyaTerm 的远程文件能力建立在 SSH 会话之上。也就是说,**文件浏览器、SFTP 传输、远程文件本地编辑后回传** 都只在 SSH 会话中可用;本地终端、Telnet、串口不会显示这一套能力。
|
||
|
||
## 文件浏览器
|
||
|
||
连接 SSH 会话后,文件浏览器面板可以直接浏览远程目录。
|
||
|
||
你会得到这些基础能力:
|
||
|
||
- 自动进入远端用户主目录
|
||
- 进入文件夹、返回上级、刷新当前目录
|
||
- 点击路径栏直接编辑并跳转到目标路径
|
||
- 与终端当前工作目录同步
|
||
- 在不支持路径跟踪的会话中关闭自动同步
|
||
- 复制当前目录路径,或把路径直接发送到终端输入区
|
||
|
||
路径栏接受 `~` 和 `~/subdir` 形式的输入,可直接跳到主目录或其子目录。
|
||
|
||
## 常见文件操作
|
||
|
||
在文件列表、工具栏或右键菜单中,你可以执行:
|
||
|
||
| 操作 | 说明 |
|
||
|------|------|
|
||
| 打开 | 下载到本地临时目录后,用默认编辑器打开 |
|
||
| 上传文件 | 选择一个或多个本地文件上传到当前目录 |
|
||
| 上传文件夹 | 整个目录上传到当前远端路径 |
|
||
| 下载 | 下载单个文件、多个已选文件,或整个目录 |
|
||
| 重命名 | 修改远端名称 |
|
||
| 移动 | 把文件或目录移动到新路径 |
|
||
| 删除 | 删除单个文件,或批量删除当前选中的多个条目 |
|
||
| 属性 | 查看大小、时间、UID/GID、权限等信息 |
|
||
| 新建文件 / 文件夹 / 符号链接 | 在当前目录中直接创建,符号链接按 OpenSSH 兼容方式处理 |
|
||
|
||
其中“打开”并不只是只读预览,而是为后续本地修改后回传做准备。
|
||
|
||
## 选择、多选与批量操作
|
||
|
||
当前文件浏览器已经支持更接近日常文件管理器的选择方式:
|
||
|
||
- 单击选择单个条目
|
||
- `Ctrl / Cmd` 多选
|
||
- `Shift` 范围选择
|
||
- `Ctrl / Cmd + A` 全选当前目录条目
|
||
- `Delete` 删除当前选中条目
|
||
|
||
当你选中了多个条目后,工具栏中的**下载**和**删除**会直接对当前选择生效;如果在多选状态下对某个已选条目打开右键菜单,相关批量操作也会作用于整组选中项。
|
||
|
||
## 上传与下载
|
||
|
||
### 上传
|
||
|
||
可通过工具栏、右键菜单或拖拽把本地内容上传到当前目录。
|
||
|
||
- 上传文件时可一次选择多个本地文件
|
||
- 上传目录时会保留目录结构
|
||
- 上传目录与上传文件会统一进入传输队列
|
||
|
||
### 外部拖拽上传
|
||
|
||
文件浏览器支持把系统文件管理器中的**文件或文件夹直接拖到 NyaTerm 文件浏览器区域**进行上传。
|
||
|
||
典型流程:
|
||
|
||
1. 打开一个 SSH 会话并进入文件浏览器
|
||
2. 把本地文件或文件夹拖到文件列表区域
|
||
3. 出现拖拽覆盖层后松手
|
||
4. NyaTerm 自动把它们加入上传流程
|
||
|
||
需要注意:
|
||
|
||
- 只有拖到文件浏览器列表区域才会触发上传
|
||
- 某些拖拽来源如果没有暴露本机真实路径,NyaTerm 无法直接解析,这时会提示你改用 **上传文件** 或 **上传文件夹**
|
||
|
||
### 下载
|
||
|
||
下载时有两种常见工作方式:
|
||
|
||
- 使用默认下载目录,直接保存到固定位置
|
||
- 每次询问保存位置,按任务分类归档
|
||
|
||
目录下载与文件下载都支持,远端目录会落到你选择的本地目标目录中。
|
||
|
||
## 传输面板与传输设置
|
||
|
||
NyaTerm 会把上传 / 下载任务统一放进传输队列中,便于你查看:
|
||
|
||
- 当前进度
|
||
- 实时传输速度
|
||
- 成功、暂停、取消与失败状态
|
||
- 同时进行中的任务
|
||
- 当前下载目录
|
||
|
||
单个传输项支持:
|
||
|
||
- **暂停**
|
||
- **继续**
|
||
- **取消**
|
||
- **失败后重试**
|
||
- **完成后从列表移除**
|
||
|
||
面板顶部还提供批量操作:
|
||
|
||
- **全部暂停**
|
||
- **全部继续**
|
||
- **全部取消**
|
||
- **清理已完成项**
|
||
|
||
在 **设置 → 传输** 中还可以按需调整:
|
||
|
||
- 上传 / 下载线程数
|
||
- 冲突时的处理策略
|
||
- 最大重试次数
|
||
- 传输缓冲区大小
|
||
- 是否保留时间戳
|
||
- 是否继续断点传输
|
||
- 默认文件权限
|
||
- 默认下载路径
|
||
- 是否每次询问保存位置
|
||
- 默认打开远程文件所使用的本地编辑器
|
||
|
||
### 重复目标处理
|
||
|
||
当上传或下载遇到同名文件时,重复目标对话框会让你选择:
|
||
|
||
- **覆盖**:替换目标文件
|
||
- **覆盖并不再询问本次任务**:对当前批量任务继续使用覆盖策略
|
||
- **跳过**:保留目标文件,跳过当前项
|
||
|
||
经常批量同步同一类目录时,在 **设置 → 传输** 中调整默认冲突策略可以减少重复确认。
|
||
|
||
### SFTP 可靠性与性能
|
||
|
||
新的 SFTP 后端改进了目录、符号链接、已知大小文件下载和大文件上传的处理。你通常不需要关心内部实现;用户可见的变化是传输速度反馈更清楚,失败时错误信息更具体,目录和符号链接操作更接近 OpenSSH 行为。
|
||
|
||
此外,NyaTerm 会对单条 SSH 连接上的并发 SFTP 通道数量做限制,并在通道打开遇到临时失败时自动带退避重试。这样在同一主机上同时进行多项文件操作时更稳定,不容易因为瞬时的通道资源不足而报错。这些都是后端行为,没有需要手动配置的设置项。
|
||
|
||
## Zmodem 传输(rz / sz)
|
||
|
||
除了 SFTP,NyaTerm 还支持终端里常见的 Zmodem 传输,也就是在远端执行 `rz`(上传到远端)或 `sz`(从远端下载)时触发的传输方式。
|
||
|
||
- 检测到 `rz` 时,NyaTerm 会让你选择要上传的本地文件;上传前会先探测远端目录中的同名文件并处理冲突
|
||
- 检测到 `sz` 时,NyaTerm 会让你选择本地保存目录
|
||
- Zmodem 传输会作为条目出现在传输队列中,带实时进度
|
||
|
||
需要注意的是,Zmodem 传输的可用控制和普通 SFTP 传输不同:
|
||
|
||
- Zmodem 项**不支持**暂停、继续、重试、取消
|
||
- 传输结束后,你只能把它从列表中移除
|
||
- 面板顶部的**全部暂停 / 全部继续 / 全部重试**会自动跳过 Zmodem 项
|
||
|
||
这是因为 Zmodem 协议的传输由终端两端直接驱动,NyaTerm 只做进度展示和文件选择,不介入协议本身的暂停与续传。
|
||
|
||
## trzsz 传输(trz / tsz)
|
||
|
||
NyaTerm 也支持终端内的 trzsz 协议:在远端执行 `tsz` 可下载文件,执行 `trz` 可上传文件;目录上传也会触发本地目录选择。传输会进入队列并显示进度。
|
||
|
||
trzsz 与 Zmodem 一样由终端协议驱动,不等同于 SFTP 文件操作。它用于无法使用 SFTP、但远端可以安装 trzsz 命令的场景。暂停、继续和重试能力取决于当前协议会话状态,不能按 SFTP 队列任务理解。
|
||
|
||
## 与终端路径同步
|
||
|
||
文件浏览器可以和当前 SSH 终端的工作目录配合使用:
|
||
|
||
- **手动同步**:点击同步按钮,把浏览器直接跳到终端当前路径
|
||
- **自动同步**:开启自动同步后,终端 `cd` 到新目录时,文件浏览器自动跟随
|
||
- **发送到终端**:把当前目录路径或某个文件路径直接发到终端输入区,便于继续补命令
|
||
|
||
在终端里 `cd` 到某个发布目录后,文件浏览器会跟到同一位置。
|
||
|
||
如果当前会话没有可用的终端路径跟踪能力,手动 / 自动同步入口会变为不可用状态;这通常意味着该会话暂时不能向后端稳定报告 cwd 变化。
|
||
|
||
## 本地编辑后自动回传
|
||
|
||
### 工作方式
|
||
|
||
1. 在 SSH 文件浏览器中对远程文件执行 **打开**
|
||
2. NyaTerm 先把文件下载到本地临时目录
|
||
3. 同时启动文件监听
|
||
4. 你在本地编辑器里保存后,应用会弹出上传提示窗口
|
||
|
||
### 上传提示窗口
|
||
|
||
文件被修改后,你可以选择:
|
||
|
||
- **上传一次**
|
||
- **始终上传**
|
||
- **取消**
|
||
|
||
对某个文件选择「始终上传」后,**当前会话内**后续保存会直接回传,不再询问。会话关闭后该选择失效。
|
||
|
||
### 只在内容真正变化时回传
|
||
|
||
文件监听按内容指纹判断是否需要回传,不只看保存事件或修改时间:
|
||
|
||
- 内容没有变化(例如编辑器只更新了修改时间)时,不会触发回传
|
||
- 只有文件内容确实改变才会弹出上传提示或执行自动回传
|
||
- 对“写临时文件再重命名”的原子保存方式也能正确识别
|
||
|
||
这样可以避免部分编辑器的保存行为造成的重复上传。
|
||
|
||
### 典型用途
|
||
|
||
- 修改远程配置文件
|
||
- 调整部署脚本
|
||
- 打开日志或状态文件做本地分析
|
||
- 为文档准备“编辑后回传”的演示截图
|
||
|
||
## 文件属性与权限
|
||
|
||
在 **属性** 中可以查看:
|
||
|
||
- 文件大小
|
||
- 修改时间、访问时间
|
||
- 所有者和组
|
||
- UID / GID
|
||
- 权限的八进制表示
|
||
|
||
替换文件前需要核对权限时,这里比 `ls -l` 更直接。
|