| 说明 | 在沙箱与主机之间复制文件或目录 |
| 用法 | sbx cp SRC DST [flags] |
描述
SRC 或 DST 其中之一必须是沙箱路径,写成 SANDBOX:PATH。 另一个必须是本地路径。不支持在两个沙箱之间复制。或者——使用 --cloud——传入 "sbx --cloud ls" 中的云端沙箱 ID(sbx_*)或名称。云端传输会走 Docker Sandboxes Cloud 的文件 API,而不是本地 sandboxd。
云端复制传输的是文件,不传输符号链接或空目录。作为 SRC 传入的符号链接 在上传时总会被跟随。上传目录中的链接会被跳过,除非设置了 --follow-link。 下载时,--follow-link 只有在 SRC 指向某个文件的符号链接时才会跟随它。目录下载 即使带 --follow-link 也会跳过符号链接。
云端复制不会保留权限和时间戳。下载程序后请重新 设置可执行权限。
沙箱路径必须是绝对路径,例如 SANDBOX:/workspace/config.json。 它不是相对于沙箱的工作目录。
复制目录时,该目录本身会被放到目标位置。 如果目标路径不存在则创建它;如果已存在且是目录,则把源目录放到它里面。
对于位于工作区目录内或挂载进沙箱的其他宿主机目录中的本地路径,即使带有 --follow-link,sbx cp 也会拒绝逃逸出这些目录的符号链接, 包括通过符号链接、联接点或替换驱动器到达目录的情况。
对本地沙箱,从 Linux 或 macOS 复制进沙箱的文件会保留 其源的数字 UID、GID 和权限。从 Windows 复制的文件 归 root 所有,并标记为可执行。
选项
| 选项 | 默认值 | 说明 |
|---|---|---|
-L, --follow-link | 跟随源路径中的符号链接(云端:不会跟随下载目录内部的链接) |
全局选项
| 选项 | 默认值 | 说明 |
|---|---|---|
--cloud | 改为调用 Docker Cloud Sandboxes API,而不是本地 sandboxd(支持的动词正在逐步增加,运行 sbx --cloud --help 查看当前列表) | |
-D, --debug | 启用调试日志 | |
--no-input | 从不提示;需要应答的命令会直接失败,并给出应当运行的命令 |
示例
console
# 从主机复制文件到沙箱
sbx cp ./config.json my-sandbox:/home/user/
# 从沙箱复制文件到主机
sbx cp my-sandbox:/home/user/output.log ./
# 复制目录
sbx cp ./src/ my-sandbox:/home/user/src
# 与云端沙箱之间复制
sbx --cloud cp ./config.json sbx_abc:/workspace/config.json
sbx --cloud cp sbx_abc:/workspace/out.log ./参见
sbx— 管理 AI 编程智能体沙箱。