文件系统命令
puppyone fs 提供一套 POSIX 风格的命令,让你像操作本地文件系统一样管理云端的 Content Node 树——浏览、读写、上传下载、版本管理,全部在终端完成。
命令总览
| 命令 | 说明 |
|---|---|
fs ls [path] | 列出文件和文件夹 |
fs tree [path] | 树状视图 |
fs cat <path> | 读取文件内容 |
fs mkdir <path> | 创建文件夹 |
fs touch <path> | 创建空文件 |
fs write <path> | 写入内容 |
fs mv <src> <dst> | 移动或重命名 |
fs rm <path> | 删除(软删除) |
fs info <path> | 查看节点详情 |
fs upload <local> [remote] | 上传本地文件 |
fs download <remote> [local] | 下载到本地 |
fs versions <path> | 查看版本历史 |
fs diff <path> <v1> <v2> | 对比两个版本 |
fs rollback <path> <ver> | 回滚到指定版本 |
fs audit <path> | 查看审计日志 |
浏览与读取
列出文件
# 列出根目录
puppyone fs ls
# 列出指定路径
puppyone fs ls /docs
# 详细模式,显示类型、大小、修改时间
puppyone fs ls -l /docs树状浏览
# 显示完整目录树
puppyone fs tree
# 限制深度
puppyone fs tree -d 2
# 指定子目录
puppyone fs tree /docs -d 3读取文件内容
# 读取 Markdown 文件
puppyone fs cat /docs/readme
# 读取 JSON 文件
puppyone fs cat /config/settings.json创建与写入
创建文件夹
puppyone fs mkdir /docs
puppyone fs mkdir /docs/guides创建空文件
# 默认创建 JSON 文件
puppyone fs touch /config/settings
# 指定文件类型
puppyone fs touch /docs/guide -t markdown
puppyone fs touch /data/records -t json写入内容
fs write 支持三种方式传入内容:
# 通过 -d 参数直接写入
puppyone fs write /config/settings -d '{"theme": "dark", "lang": "zh"}'
# 从本地文件读取
puppyone fs write /docs/readme -f ./README.md
# 通过管道传入(stdin)
echo '{"key": "value"}' | puppyone fs write /config/app
cat report.md | puppyone fs write /docs/report常见场景——用脚本批量写入数据:
# 将 API 返回的 JSON 直接写入
curl -s https://api.example.com/data | puppyone fs write /imports/api-data
# 将处理后的内容写入
jq '.results' data.json | puppyone fs write /processed/results文件管理
移动与重命名
# 重命名
puppyone fs mv /docs/old-name /docs/new-name
# 移动到其他目录
puppyone fs mv /docs/draft /published/article删除
# 软删除(可恢复)
puppyone fs rm /docs/outdated查看节点详情
puppyone fs info /docs/readme输出包含节点 ID、类型、创建时间、修改时间、大小等元信息。
上传本地文件
# 上传到指定路径
puppyone fs upload ./report.pdf /docs/report.pdf
# 不指定远程路径时,使用本地文件名
puppyone fs upload ./data.csv下载到本地
# 下载到指定路径
puppyone fs download /docs/report.pdf ./downloads/report.pdf
# 不指定本地路径时,下载到当前目录
puppyone fs download /exports/data.json版本管理
每次写入操作都会自动生成版本记录,你可以随时查看历史、对比差异、回滚到任意版本。
查看版本历史
puppyone fs versions /docs/readme输出示例:
Version Author Date Summary
v3 [email protected] 2025-01-15 14:30:00 Updated introduction
v2 agent-bot 2025-01-14 10:00:00 Added FAQ section
v1 [email protected] 2025-01-13 09:00:00 Initial version对比两个版本
# 对比 v1 和 v3
puppyone fs diff /docs/readme v1 v3回滚到指定版本
# 回滚到 v2
puppyone fs rollback /docs/readme v2回滚会创建一个新版本,内容与目标版本相同,不会丢失中间的版本记录。
审计日志
查看某个节点的所有操作记录——谁在什么时间做了什么。
puppyone fs audit /docs/readme输出示例:
Time Actor Action Details
2025-01-15 14:30:00 [email protected] update Updated content
2025-01-15 10:00:00 agent-bot update Added FAQ section
2025-01-13 09:00:00 [email protected] create Created node实用工作流
快速搭建项目结构
puppyone fs mkdir /docs
puppyone fs mkdir /config
puppyone fs mkdir /data
puppyone fs touch /config/settings -t json
puppyone fs write /config/settings -d '{"version": "1.0", "env": "production"}'
puppyone fs touch /docs/readme -t markdown
puppyone fs write /docs/readme -f ./README.md数据导入与整理
# 上传本地文件
puppyone fs upload ./dataset.csv /data/raw/dataset.csv
# 写入处理后的数据
puppyone fs touch /data/processed/summary -t json
puppyone fs write /data/processed/summary -d '{"total": 1024, "status": "done"}'版本对比与回滚
# 查看某个重要配置的历史
puppyone fs versions /config/settings
# 发现最近的修改有问题,回滚
puppyone fs diff /config/settings v3 v5
puppyone fs rollback /config/settings v3配合 JSON 输出做自动化
# 获取目录结构的 JSON 输出
puppyone fs ls /data --json
# 在脚本中遍历文件
for file in $(puppyone fs ls /data --json | jq -r '.[].name'); do
puppyone fs cat "/data/$file" --json > "backup_$file.json"
done