# 文件管理：剪切 / 复制 / 粘贴

**日期**：2026-06-01

## 摘要

实现 v2 设计中的远程文件剪贴板：`POST /api/sync/file-clipboard`（`cp -r` / `mv -t`），前端 Ctrl+C/X/V、工具栏粘贴、右键菜单与状态芯片。

## 动机

用户要求补齐此前因缺少后端 API 未实现的剪切/复制/粘贴。

## 涉及文件

- `server/api/schemas.py` — `FileClipboardApply`
- `server/api/remote_path_validation.py`（新建）
- `server/api/sync_v2.py` — `/file-clipboard`
- `frontend/src/composables/useFilesClipboard.ts`（新建）
- `frontend/src/composables/useFilesHotkeys.ts`
- `frontend/src/pages/FilesPage.vue`
- `tests/test_remote_path_validation.py`（新建）
- `docs/design/specs/2026-06-01-files-clipboard-transfer-design.md`

## 安全

- 绝对路径 + 禁止 `..`
- 禁止粘贴到源目录子路径
- 审计 `file_copy` / `file_move`

## 迁移 / 重启

需部署**后端 + 前端**（新 API）。

## 验证

```bash
pytest tests/test_remote_path_validation.py -q
```

浏览器：复制→进入另一目录→粘贴；剪切→粘贴后源消失；跨服务器粘贴应提示。

---

## 2026-06-01 补充：跨目录粘贴

- 粘贴目标：默认当前目录；**单选一个文件夹**时粘贴到该文件夹；**右键目录**「粘贴到 xxx」；**目录树右键**粘贴到该节点
- 状态栏显示剪贴板内容与粘贴目标路径
- 前端 `validatePasteTarget` 与后端一致，禁止粘贴到源目录内部
