项目介绍——flk

flk(FileLinK):跨平台文件链接管理器,让配置同步更简单

项目概述

flk(FileLinK)是一款跨平台命令行工具,基于符号链接与硬链接技术,核心目标是解决多设备、多软件的配置文件分散管理与同步难题。它通过将各类软件的文件型配置存放至统一的 Git 仓库,实现配置的集中存储、多设备同步与一键恢复,同时支持灵活调整配置路径,适配不同使用场景下的配置管理需求,目前已可满足日常使用,处于持续迭代优化阶段。

前置知识——符号链接与硬链接

推荐阅读文章:https://sspai.com/post/66834

这是必备的知识,若您不了解符号链接与硬链接,之后的文章内容将会对您造成困扰。

核心功能

链接创建与管理

  • 支持符号链接(软链接)和硬链接两种类型创建,通过命令行指定真实配置路径与软件读取的虚拟路径,一键完成链接替换。
  • 自动记录所有创建的链接信息,形成配置清单,便于后续检查与维护,支持强制覆盖已有配置文件(--force参数)。

多设备配置同步

  • 配置集中存储于 Git 仓库,多设备间通过拉取仓库即可同步配置资源。
  • 适配跨平台场景:对于 .gitconfig 等通用配置文件,可实现 Windows、Linux 等不同系统间的无缝同步;对于 MyKeymap 等系统专属软件配置,仅支持同系统内同步。

链接有效性检查与恢复

  • 提供全局或指定范围的链接检查功能,支持筛选符号链接、硬链接或全部链接类型,可仅显示存在问题的链接(--log-question-only 参数)。
  • 设备迁移后,通过 flk check --global 命令一键恢复所有配置链接,支持更新家目录路径(--update-home 参数)、指定设备筛选(--device 参数),解决不同设备安装路径差异问题。

灵活适配与扩展

  • 支持任意以文件形式存储配置的软件(如 PixPin、Sandboxie Plus 等),无需软件本身支持导出/导入功能,通过链接机制直接接管配置。
  • 可实现“奇技淫巧”级用法:例如将微信文件目录、软件缓存目录等通过链接转移至指定位置,优化存储管理。

核心优势

  • 配置集中化:打破不同软件配置分散存储的痛点,所有配置统一管理于 Git 仓库,便于备份与查阅。
  • 路径灵活调整:通过链接机制脱离软件默认配置路径限制,可按需将配置存储至任意位置(如大容量硬盘、共享目录)。
  • 跨平台兼容性:支持 Windows、Linux 等多系统运行,只要配置文件本身具备跨平台通用性,即可实现多设备同步。
  • 轻量无依赖:基于原生文件链接技术,无需额外后台进程,仅通过命令行交互,资源占用极低。
  • 可追溯性:所有链接操作均被记录,便于排查配置问题,支持精准恢复与更新,假如使用 Git 仓库,还可以享受配置差异对比、配置版本存档等各种优势。

典型使用流程

以 PixPin 配置同步为例

简述

  1. 本地配置集中:将PixPin的配置文件 PixPinConfig.json 复制到Git仓库指定目录。
  2. 创建链接:在仓库下,以管理员权限执行命令:flk create symlink --real <Git 仓库中的配置路径> --fake <软件真实读取的配置路径> --force,替换原配置文件为符号链接。
  3. 多设备同步:在另一设备拉取 Git 仓库,执行 flk check --global --update-home,一键恢复链接配置。
  4. 配置更新:任意设备修改配置后,通过 Git 提交推送,其他设备拉取仓库即可同步更新(需维护 Git 仓库状态)。

详述(新手视角)

PixPin 的配置是什么,存在哪里?尝试用 Listary、Everything 等工具搜索,或直接用搜索引擎查找:

配置查找

查看后,确认是 PixPin 的配置文件,将其复制到 Git 仓库的指定位置。

[TODO]

当前状态与未来规划

现有版本

  • 形态:命令行工具(CLI),提供完整的创建、检查、恢复功能,支持flk --help查看详细用法。
  • 成熟度:完全的初版阶段,开发者已实现个人日用全覆盖,核心功能稳定。
  • 依赖:需用户具备基础的 Git 操作能力、对符号链接与硬链接有深刻理解、了解目标软件的配置文件路径(需一定使用经验)。

未来迭代方向

  1. 开发网页版管理界面:降低使用门槛,可视化管理所有链接配置,替代命令行交互。
  2. 优化同步体验:解决存在的同步延迟、错误问题,探索更稳定的同步机制。
  3. 增加常见软件适配库:内置主流软件的配置路径,实现“一键识别、自动链接”,减少用户手动配置成本。
  4. 增强兼容性:优化不同系统下的链接稳定性,解决特殊软件配置文件的同步适配问题。

适用场景

  • 多设备办公/开发人群:需在台式机、笔记本等设备间保持一致的软件配置(如编辑器设置、Git 配置、浏览器书签等)。
  • 技术爱好者:追求配置管理的标准化与高效化,希望通过轻量化工具实现配置的集中管控。
  • 跨平台使用者:需要在 Windows、Linux 等不同系统间同步通用配置,减少重复设置成本。

flk 以“本地链接中转+云端同步”为核心设计理念,用极简的技术方案解决了配置管理的核心痛点。随着后续可视化界面与适配库的完善,将进一步降低使用门槛,成为多设备配置同步的高效工具。

常见问题

为什么创建符号链接失败了

在 Windows 中,必须 用管理员权限运行 flk 才可以创建符号链接。简单来说,请使用管理员权限打开终端或 cmd、PowerShell,再执行 flk.exe。

为什么创建硬链接失败了?

硬链接要求主文件和从文件位于 同一个 盘符下。且硬链接具有失效风险,需要适时维护。

附录——当前的帮助信息

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
flk --help
flk(FileLinK)是一个跨平台文件链接管理器,支持符号链接和硬链接的创建与管理

用法:
flk [flags]

可用命令:
  check       检查链接有效性
  create      创建符号链接或硬链接
  help        显示任何命令的帮助信息

标志:
  -h, --help      显示此帮助信息
  -v, --version   显示版本信息

使用“flk [命令] --help”获取有关命令的更多信息
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
flk check --help
检查符号链接和硬链接的有效性

支持检查符号链接、硬链接或全部链接
可以在本地目录或全局范围内进行检查
使用"--device"可以只检查指定设备和通用文件的链接

用法:
flk check [flags]

无可用命令

标志:
      --all                 检查所有链接(默认行为,不需要指定)
      --device string       指定设备名称,仅检查该设备和通用文件的链接
      --global              读取全集记录文件,检查所有已记录位置
      --hardlink            仅检查硬链接
      --location string     指定“file-link-manager-links.json”文件的父目录,检查将在该目录下进行
      --log-question-only   仅记录有问题的链接,不进行交互
      --symlink             仅检查符号链接
      --update-home         更新家目录路径,用于在迁移设备后快速恢复所有链接

使用“flk check [命令] --help”获取有关命令的更多信息
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
flk create --help
创建符号链接或硬链接

支持两种子命令:
  symlink - 创建符号链接(软链接)
  hardlink - 创建硬链接

用法:
flk create [flags]

可用命令:
  hardlink    创建硬链接
  symlink     创建符号链接

无可用标志

使用“flk create [命令] --help”获取有关命令的更多信息
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
flk create symlink --help
创建符号链接(软链接)

符号链接指向另一个文件或目录,类似快捷方式
使用“--real”指定真实文件路径,“--fake”指定链接路径

用法:
flk create symlink [flags]

无可用命令

标志:
      --device string   设备名称,用于后续设备过滤检查
  -f, --fake string     链接文件路径
      --force           强制覆盖已存在的文件
  -r, --real string     真实文件路径

使用“flk create symlink [命令] --help”获取有关命令的更多信息
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
flk create hardlink --help
创建硬链接

硬链接是文件的另一个名称,与原文件指向同一个inode
使用“--prim”指定主要文件路径,“--seco”指定次要文件路径

用法:
flk create hardlink [flags]

无可用命令

标志:
      --device string   设备名称,用于后续设备过滤检查
      --force           强制覆盖已存在的文件
  -p, --prim string     主要文件路径
  -s, --seco string     次要文件路径

使用“flk create hardlink [命令] --help”获取有关命令的更多信息
发表了 36 篇文章 | 总计 32530 字
本博客已稳定运行
使用 Hugo 构建
主题 StackJimmy 初始设计,由 蛋卷儿 深入修改