项目介绍-flk

跨平台文件链接管理器,让配置同步更简单

开发路线

  • 0.2:开发完 server 功能,实现完整的 WebUI 管理
  • 0.3:开发国际化功能,为软件内所有字符串添加抽象 i18n 层

项目概述

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

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

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

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

安装

从源码编译

确保安装 Go 1.21+,然后运行:

1
2
3
git clone https://github.com/Jy-EggRoll/flk.git
cd flk
go build -o flk ./main.go

下载预编译二进制

GitHub Releases 下载对应平台的二进制文件,赋予执行权限后使用。

建议:下载后统一将文件重命名为 flk(或 flk.exe),方便后续的使用和升级。

自动升级

flk 内置自动升级功能:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 检查正式版更新
flk upgrade

# 检查开发版更新
flk upgrade --dev

# 仅检查版本,不升级
flk upgrade --check

# 强制升级(跳过确认)
flk upgrade --force

核心功能

链接创建与管理

  • 语义化的链接创建,舍弃了传统的“源”“目标”链接这样的表述方式,使用“主要”“次要”这样的语义化参数来指定文件,创建文件链接时更直观。
  • 支持符号链接(软链接)和硬链接两种类型创建,通过命令行指定真实配置路径与软件读取的虚拟路径,一键完成链接替换。
  • 自动记录所有创建的链接信息,形成配置清单,便于后续检查与维护,支持强制覆盖已有配置文件(--force参数)。

多设备配置同步

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

灵活适配与扩展

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

使用示例

用前必读

  • 查看软件帮助:flk --help flk -h flk help
  • 查看特定命令的帮助:flk help <命令> flk <命令> --help flk <命令> -h

软件中的子命令通常有各种别名,可以简化输入,您可以自行用 help 来查看。例如,upgrade update up 命令三者完全等价。

创建符号链接

1
2
3
4
5
# 创建符号链接,将真实配置文件链接到软件读取位置
flk create symlink --real ~/.config/myapp/config.json --fake ~/Library/Application Support/MyApp/config.json --device laptop

# 采用别名和短参数
flk cr sm -r ~/.config/myapp/config.json -f ~/Library/Application Support/MyApp/config.json -d laptop

对于 Windows 用户,需要使用管理员权限运行。建议启用 Windows 平台的 sudo,此处不再赘述。

创建硬链接

1
2
3
4
5
# 创建硬链接,要求文件在同一分区
flk create hardlink --prim /path/to/source --seco /path/to/target --device desktop

# 采用别名和短参数
flk cr hd -p /path/to/source -s /path/to/target -d desktop

检查链接状态

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 检查所有链接
flk check

# 采用别名
flk ck

# 检查特定设备的链接
flk check -d laptop,desktop

# 检查特定目录的链接
flk check --dir ~/.config

修复无效链接

1
2
3
4
5
6
7
8
# 交互式修复
flk fix

# 采用别名
flk fx

# 修复特定设备的链接
flk fix -d laptop,desktop

查看版本

1
2
flk version
flk ver

最佳实践

1. 统一配置管理

  • 将所有配置文件存放在 Git 仓库中,使用 flk 创建链接到软件默认位置。
  • 示例:将 .gitconfigvimrc 等文件集中管理,多设备同步。

2. 设备命名规范

  • 设备名不能包含逗号或空格,用于过滤时使用逗号分隔多个设备。
  • 建议使用简单名称如 laptopdesktopserver

3. 安全使用 --force

  • --force 会删除目标路径的现有文件,确保路径不指向重要目录。
  • flk 已内置安全检查,禁止删除根目录或家目录。

4. 定期检查与维护

  • 使用 flk check 定期验证链接有效性。
  • 对于硬链接,因其失效风险,建议定期修复。

5. 备份重要配置

  • 在使用前备份现有配置,防止意外丢失,尤其是使用 --force 参数会增加该风险。

安全注意事项

  • 路径验证:flk 禁止使用 --force 删除根目录(/C:\)或用户家目录,防止灾难性数据丢失。
  • 权限管理:Windows 创建符号链接需管理员权限,避免权限不足导致失败。
  • 设备名限制:创建链接时设备名不能含逗号或空格,以免影响过滤功能。
  • 硬链接限制:硬链接无法跨文件系统,确保主、次文件在同一分区。

适用场景

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

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

常见问题

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

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

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

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

发表了 54 篇文章 | 总计 46109 字
本博客已稳定运行
使用 Hugo 构建
主题 StackJimmy 设计,由 蛋卷儿 深入修改