本项目接入了 DeepWiki,欢迎在 DeepWiki 上与之对话,以获取最精准的信息和解答:
开发路线
当前软件正在积极地开发,采用了多个阶段的开发路线,计划逐步完善功能和用户体验:
- 0.2:开发完 server 功能,实现完整的 WebUI 管理
- 0.3:开发国际化功能,为软件内所有字符串添加抽象 i18n 层
0.1 版本的近期开发重点是:
- 将参数配置化,支持通过配置文件或环境变量来设置默认参数值,减少命令行输入的复杂度,如使用 Viper 集成。
- 简化命令行参数,约定优于配置,提供更智能的默认值和参数推断,减少用户需要输入的参数数量(低优先级,穿插开发)
演示

项目概述
flk(FileLinK)是一款跨平台命令行工具,基于符号链接与硬链接技术,核心目标是解决多设备、多软件的配置文件分散管理与同步难题。它通过将各类软件的文件型配置存放至统一的 Git 仓库,实现配置的集中存储、多设备同步与一键恢复,同时支持灵活调整配置路径,适配不同使用场景下的配置管理需求,目前已可满足日常使用,处于持续迭代优化阶段。
该项目主要解决的痛点
配置同步如果采用手动复制粘贴的方式,效率极低且易出错。尤其是用户有大量的、跨平台的配置文件时,管理和同步的复杂度会大幅增加。采用复制粘贴思想为底层,但做了封装和优化的软件是存在的,但是这样的配置同步显然不够优雅,且不够高效。
使用符号链接和硬链接的方式来管理配置文件,可以实现真正意义上的“配置同步”,即所有设备上的配置文件都指向同一个位置,修改自动同步到中心仓库,中心仓库的修改也会自动同步到所有设备。flk 通过命令行工具的形式,提供了一个统一的接口来创建、检查和修复这些链接,极大地简化了配置管理的流程。
有用户提出,这种方式和写一个脚本来管理配置文件的方式有什么区别?确实,理论上任何功能都可以通过脚本来实现,但 flk 的优势在于:
- 跨平台。flk 设计之初就考虑了 Windows、Linux、macOS 等不同平台的兼容性,提供了统一的命令行接口,用户无需关心底层实现细节。
- 安全性。flk 内置了安全检查机制,防止用户误操作导致数据丢失,例如禁止使用
--force删除根目录或家目录。 - 交互性。flk 提供了交互式的检查和修复功能,用户可以在命令行中直观地查看链接状态,并选择修复方案,而不需要编写复杂的脚本逻辑来处理各种边界情况。
- 可维护性。flk 通过记录链接信息形成配置清单,便于用户后续检查和维护,而脚本可能需要额外的日志记录和错误处理来实现类似功能。
前置知识——符号链接与硬链接
推荐阅读文章:https://sspai.com/post/66834
这是必备的知识,若您不了解符号链接与硬链接,之后的文章内容将会对您造成困扰。
安装
下载预编译二进制
从 GitHub Releases 下载对应平台的二进制文件,赋予执行权限后使用。
建议:下载后统一将文件重命名为
flk(或flk.exe),方便后续的使用和升级。
从源码编译(不建议普通用户采取该方式)
确保安装 Go 1.21+,然后运行:
|
|
自动升级
flk 内置自动升级功能:
|
|
核心功能
链接创建与管理
- 语义化的链接创建,舍弃了传统的“源”“目标”链接这样的表述方式,使用“主要”“次要”这样的语义化参数来指定文件,创建文件链接时更直观。
- 支持符号链接(软链接)和硬链接两种类型创建,通过命令行指定真实配置路径与软件读取的虚拟路径,一键完成链接替换。
- 自动记录所有创建的链接信息,形成配置清单,便于后续检查与维护,支持强制覆盖已有配置文件(
--force参数)。
多设备配置同步
- 配置集中存储于 Git 仓库,多设备间通过拉取仓库即可同步配置资源。
- 适配跨平台场景:对于
.gitconfig等通用配置文件,可实现 Windows、Linux 等不同系统间的无缝同步;对于 MyKeymap 等系统专属软件配置,仅支持同系统内同步。 - 支持按设备过滤检查/修复链接,便于管理多设备配置。
灵活适配与扩展
- 支持任意以文件形式存储配置的软件(如 PixPin、Sandboxie Plus 等),无需软件本身支持导出/导入功能,通过链接机制直接接管配置。
- 可实现“奇技淫巧”级用法:例如将微信文件目录、软件缓存目录等通过链接转移至指定位置,优化存储管理。
使用示例
用前必读
- 查看软件帮助:
flk --helpflk -hflk help - 查看特定命令的帮助:
flk help <命令>flk <命令> --helpflk <命令> -h
软件中的子命令通常有各种别名,可以简化输入,您可以自行用 help 来查看。例如,upgrade update up 命令三者完全等价。
创建符号链接
|
|
对于 Windows 用户,需要使用管理员权限运行。建议启用 Windows 平台的 sudo,此处不再赘述。
创建硬链接
|
|
检查链接状态
|
|
修复无效链接
|
|
查看版本
|
|
最佳实践
1. 统一配置管理
- 将所有配置文件存放在 Git 仓库中,使用 flk 创建链接到软件默认位置。
- 示例:将
.gitconfig、vimrc等文件集中管理,多设备同步。
2. 设备命名规范
- 设备名不能包含逗号或空格,用于过滤时使用逗号分隔多个设备。
- 建议使用简单名称如
laptop、desktop、server。
3. 安全使用 --force
--force会删除目标路径的现有文件,确保路径不指向重要目录。- flk 已内置安全检查,禁止删除根目录或家目录。
4. 定期检查与维护
- 使用
flk check定期验证链接有效性。 - 对于硬链接,因其失效风险,建议定期修复。
5. 备份重要配置
- 在使用前备份现有配置,防止意外丢失,尤其是使用
--force参数会增加该风险。
安全注意事项
- 路径验证:flk 禁止使用
--force删除根目录(/或C:\)或用户家目录,防止灾难性数据丢失。 - 权限管理:Windows 创建符号链接需管理员权限,避免权限不足导致失败。
- 设备名限制:创建链接时设备名不能含逗号或空格,以免影响过滤功能。
- 硬链接限制:硬链接无法跨文件系统,确保主、次文件在同一分区。
适用场景
- 多设备办公/开发人群:需在台式机、笔记本等设备间保持一致的软件配置(如编辑器设置、Git 配置、各种软件配置等)。
- 技术爱好者:追求配置管理的标准化与高效化,希望通过轻量化工具实现配置的集中管控。
- 跨平台使用者:需要在 Windows、Linux 等不同系统间同步通用配置,减少重复设置成本。
flk 以“本地链接中转+云端同步”为核心设计理念,用极简的技术方案解决了配置管理的核心痛点。随着后续可视化界面与适配库的完善,将进一步降低使用门槛,成为多设备配置同步的高效工具。
常见问题
为什么创建符号链接失败了
在 Windows 中,必须 用管理员权限运行 flk 才可以创建符号链接。简单来说,请使用管理员权限打开终端或 cmd、PowerShell,再执行 flk.exe。
为什么创建硬链接失败了?
硬链接要求主文件和从文件位于 同一个 盘符下,且硬链接具有失效风险,需要适时维护。