gogcli 文档复制指南:使用 `gog docs copy` 在终端中复制 Google 文档

gogcli 文档复制指南:使用 `gog docs copy` 在终端中复制 Google 文档 gogcli 文档复制指南使用gog docs copy在终端中复制 Google 文档【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcligog docs copy是 gogcliGoogle Workspace in your terminal中用于复制 Google Docs 文档的核心命令支持指定新标题与目标文件夹一条命令即可完成另存为/副本创建操作。本文以 gog-docs-copy.md 为骨架结合仓库源码与测试完整讲解命令语法、全部参数、实际用法与底层实现原理帮助你把它安全地用于日常操作与自动化脚本。命令概览复制文档的三种写法gog docs copy本质上是 Drive APIFiles.Copy操作在 Docs 场景下的封装源码见 docs.go命令声明为Copy DocsCopyCmd cmd: name:copy aliases:cp,duplicate help:Copy a Google Doc因此copy拥有两个官方别名cp与duplicate无论哪种写法语义完全一致。其父命令是 gog docs完整用法为gog docs (doc) copy (cp,duplicate) docId title [flags]其中两个位置参数是必填的位置参数含义说明docId源文档 ID要复制的 Google 文档 ID非 URL可配合gog docs info获取title新文档标题复制后新文档的标题不允许为空命令本身仅有的一个专属可选参数是--parent用于指定目标文件夹见下文 Flags 表。全局 Flags复制命令可用参数全表以下参数对gog docs copy全部可用其中多数为 gogcli 的全局通用参数与父命令 gog docs 保持一致Flag类型默认值说明--access-tokenstring直接使用传入的 access token绕过存储的 refresh tokentoken 约 1 小时过期-a--account--acctstring指定 Google API 命令使用的账户邮箱、别名或auto--clientstringOAuth 客户端名称选择已存储的凭据与 token 桶--colorstringauto输出颜色auto\|always\|never--disable-commandsstring逗号分隔的禁用命令列表支持点路径-n--dry-run--dryrun--noop--previewbool不真正执行修改仅打印预期操作并以成功退出--enable-commandsstring逗号分隔的启用命令前缀列表支持点路径限制 CLI--enable-commands-exactstring逗号分隔的精确启用命令列表父命令不会连带启用子命令-y--force--assume-yes--yesbool跳过破坏性命令的确认提示--gmail-no-sendboolfalse阻止 Gmail 发送操作Agent 安全-h--helpkong.helpFlag显示上下文相关的帮助信息--homestring覆盖 gogcli 的 config/data/state/cache 根目录等价于GOG_HOME-j--json--machineboolfalse以 JSON 输出到 stdout脚本友好--no-input--non-interactive--noninteractivebool永不提示失败即退出适合 CI--parentstring目标文件夹 ID复制后文档的存放位置-p--plain--tsvboolfalse输出稳定可解析的纯文本TSV无颜色--quota-projectstring计入 API 用量账单的 Google Cloud 项目以X-Goog-User-Project发送部分 API 配合--access-token或 ADC 时需要--readonlyboolfalse运行时阻止变更类 API 请求auth add时也只申请只读 OAuth scope--results-onlyboolJSON 模式下只输出主结果丢弃nextPageToken等信封字段--select--pick--projectstringJSON 模式下按逗号分隔选择字段尽力而为支持点路径多数命令推荐用--fields-v--verbosebool开启详细日志--versionkong.VersionFlag打印版本并退出--wrap-untrustedboolfalseJSON/raw 输出时把抓取的文本字段包裹进外部不可信内容标记值得特别说明的是--parent它是gog docs copy独有的业务参数对应源码中DocsCopyCmd结构体的Parent字段见 docs.gotype DocsCopyCmd struct { DocID string arg: name:docId help:Doc ID Title string arg: name:title help:New title Parent string name:parent help:Destination folder ID }实际使用示例基础复制生成同名位置的新副本gog docs copy docId 2026-Q3 项目周报副本复制到指定文件夹先通过gog drive ls或gog drive search拿到目标文件夹 ID然后gog docs copy docId 备份-合同模板 --parent folderId以别名方式调用gog docs cp docId 文档A的副本 gog docs duplicate docId 文档A的副本JSON 输出脚本化使用gog docs copy docId 新标题 --json干跑模式先看将执行什么不真正改动gog docs copy docId 新标题 --dry-run--dry-run在复制前打印将执行的docs.copy操作及id、name、parent参数后即成功退出不会触发真实 API 写入源码见 drive_copy.go适合在 CI 或批量脚本中先做安全演练。源码剖析gog docs copy是如何实现的gog docs copy的实现位于 docs.go它把参数委托给共享的copyViaDrive辅助函数func (c *DocsCopyCmd) Run(ctx context.Context, flags *RootFlags) error { return copyViaDrive(ctx, flags, copyViaDriveOptions{ Op: docs.copy, ArgName: docId, ExpectedMime: application/vnd.google-apps.document, KindLabel: Google Doc, }, c.DocID, c.Title, c.Parent) }这里传递了四个关键配置定义见 drive_copy.goOp: docs.copy操作标识用于干跑模式与审计ArgName: docId错误提示中位置参数的名称ExpectedMime: application/vnd.google-apps.document校验源文件必须是 Google Docs 文档KindLabel: Google DocMIME 类型不匹配时错误信息里的类型名称。copyViaDrive见 drive_copy.go的执行流程可以拆成五步参数清洗与校验normalizeGoogleID处理 docId/parent容错 URL 形式的 IDdocId与title为空时返回 usage 错误干跑短路调用dryRunExit命中--dry-run时打印预期操作并直接退出获取 Drive 服务requireDriveService完成账户选择与鉴权元数据与类型校验svc.Files.Get(id).SupportsAllDrives(true).Fields(id, name, mimeType)拉取源文件信息若 MIME 类型不是application/vnd.google-apps.document则报错file is not a Google Doc (mimeType...)确保不会复制错误类型的文件执行复制构造drive.File{Name: name}若指定--parent则追加Parents调用svc.Files.Copy(id, req).SupportsAllDrives(true).Fields(id, name, mimeType, webViewLink)最终返回新文件。注意SupportsAllDrives(true)意味着复制操作同样适用于**共享驱动器Shared Drives**中的文档。输出格式命令输出与 gogcli 其他命令保持一致见 drive_copy.goJSON 模式--json输出{ file: { id: ..., name: ..., mimeType: ..., webViewLink: ... } }默认/TSV 模式逐行输出id、name、mime若返回了webViewLink还会附上link一行方便 grep/awk 解析。测试验证从端到端用例看契约gog docs copy的调用契约在端到端干跑测试中有明确覆盖见 dryrun_e2e_test.go{ name: docs copy, args: []string{docs, copy, doc123, SmokeDoc}, op: docs.copy, },该用例验证了以docs copy docId title调用时命令必须识别为docs.copy操作并在干跑模式下正确执行。由于--dry-run不会发起真实 API 调用这类测试可以在无凭据的 CI 环境中稳定运行也从侧面确认了复制操作受干跑开关保护这一安全特性。实战注意事项权限要求复制需要源文档的读取权限以及对目标文件夹的写入权限跨共享驱动器复制时依赖SupportsAllDrives支持MIME 校验只能复制真正的 Google Docs 文档传入电子表格或 PDF 的 ID 会得到明确的类型错误只读保护--readonly会在运行时阻止一切变更类请求gog docs copy属于被阻止的写操作之一结合--dry-run可以在只读/审计环境中放心使用自动化场景建议组合--json解析新文档 ID与--no-inputCI 中不挂起等待交互文档引用关系相关命令可参考 gog docs create新建文档、gog docs export导出副本为 PDF/DOCX/MD 等、gog docs info读取文档 ID 与元数据组合使用可构建完整的创建—复制—导出文档流水线。更多资源gog docs 命令总览命令索引复制实现源码internal/cmd/drive_copy.go命令定义源码internal/cmd/docs.go干跑端到端测试internal/cmd/dryrun_e2e_test.go【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考