Skip to content

boze46/user-dir-maintenance-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

user-dir 维护 CLI

使用 Bun/TypeScript 编写的交互式工具,可根据 folder.kdl 描述同步 Linux XDG user-dirs 及自定义目录结构。

运行方式

bun run src/index.ts \
  --kdl ./folder.kdl \
  --config ~/.config/user-dirs.dirs

参数说明:

  • --kdl: KDL 布局文件路径,默认 ./folder.kdl
  • --config: user-dirs.dirs 文件路径,默认 ~/.config/user-dirs.dirs
  • --dry-run: 仅输出计划与提示,不执行任何写操作。

功能特性

  1. KDL 布局解析home { ... } 树定义目录层级;user-dirs(desktop/download/...)可使用 "新名称" 重命名并支持嵌套。
  2. 迁移与备份:对 8 个固定 XDG 目录生成迁移计划,逐步确认;目标存在且非空时提供 备份后替换合并删除跳过 选项。备份统一存储于 $HOME/.bak/<timestamp>/...
  3. 配置同步:迁移后写回 user-dirs.dirs,写入前自动备份;流程结束可选择执行 xdg-user-dirs-update
  4. 自定义目录创建:对非 user-dirs 节点统一 mkdir -p,已存在则跳过。
  5. 安全模式:所有写操作均需确认;--dry-run 用于审阅计划。

开发/测试

项目依赖 Bun 1.3+,无需额外 npm 包。可参考 user-dirs.dirs.sample 与示例 folder.kdl 做 dry-run:

bun run src/index.ts --dry-run \
  --config ./user-dirs.dirs.sample \
  --kdl ./folder.kdl

KDL 约定

  • 根节点必须为 home
  • 8 个 XDG 目录以英文小写键名:desktop, download, templates, publicshare, documents, music, pictures, videos
  • 需要重命名时使用字符串值:music "audio";普通目录仅保留名称(可继续嵌套子节点)。

About

用户目录维护工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published