中文
CLI 参考
文件系统命令

文件系统命令

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