F2:让批量重命名变得轻松愉快的命令行工具 #
F2 是什么? #
F2 是一款基于 Go 语言开发的跨平台命令行批量文件重命名工具,专为需要高效整理海量文件的开发者与高级用户设计。它通过字符串替换、正则表达式、内置变量等方式,让用户用一条命令即可完成成百上千个文件的重命名,例如统一文件命名规范、批量修改扩展名、按拍摄日期整理照片、按 ID3 标签重排音乐文件等。相比手动逐个改名,F2 默认以预览(dry-run)模式运行,配合完善的冲突检测与撤销机制,既高效又安全,并可在 Linux、Windows 和 macOS 上获得一致的使用体验。
F2 有哪些亮点特色? #
- 批量文件重命名:F2 允许你通过批量重命名整理整个文件系统,确保文件与目录遵循统一的命名规范,告别逐个手工改名的繁琐流程。
- 灵活的重命名方案:提供从简单字符串替换到正则表达式高级转换的多种重命名操作,几乎覆盖所有命名需求场景。
- 冲突检测与自动解决:执行前会分析目标路径的潜在冲突与错误,自动检测名称冲突、空文件名、禁止字符、超长文件名等问题,并可借助
-F/--fix-conflicts一键修复,避免意外覆盖文件。 - 内置丰富变量:支持文件名/路径、日期、Exif 图像信息、ID3 音频标签、ExifTool 标签、文件哈希等多种内置变量,还能对变量做大小写等字符串变换,实现"按内容改名"。
- 极致性能:即使面对大量文件,F2 依然保持极高的处理速度,把重命名过程中的等待时间降到最低。
- 撤销回滚功能:任何一次重命名操作都可以撤回,让你随时恢复到上一状态,操作更安心。
- 跨平台一致体验:F2 在 Linux、Windows 和 macOS 上均经过充分测试,三大平台功能保持一致。
- 默认安全预览:F2 默认运行在 dry-run 模式,只展示重命名结果而不真正修改文件,必须显式加上
-x/--exec才会执行,从机制上杜绝误操作。

免费下载 F2 #
以下为官方提供的各平台安装包(版本 v2.2.2),点击链接即可下载。请根据你的操作系统与 CPU 架构选择对应文件。
| 文件名 | 描述 | 大小 | 下载 |
|---|---|---|---|
| f2_2.2.2_darwin_amd64.tar.gz | macOS(Intel / amd64)二进制压缩包 | 5.4 MB | 夸克网盘 |
| f2_2.2.2_darwin_arm64.tar.gz | macOS(Apple Silicon / arm64)二进制压缩包 | 5.1 MB | 夸克网盘 |
| f2_2.2.2_linux_386.apk | Linux 32 位(386)安装包 | 5.2 MB | 夸克网盘 |
| f2_2.2.2_linux_amd64.apk | Linux 64 位(amd64)安装包 | 5.4 MB | 夸克网盘 |
| f2_2.2.2_linux_arm64.apk | Linux ARM64 安装包 | 5.0 MB | 夸克网盘 |
| f2_2.2.2_windows_386.zip | Windows 32 位(386)压缩包 | 5.3 MB | 夸克网盘 |
| f2_2.2.2_windows_amd64.zip | Windows 64 位(amd64)压缩包 | 5.4 MB | 夸克网盘 |
F2 如何使用? #
F2 的使用逻辑非常清晰:先声明"查找什么、替换成什么",预览确认无误后再执行。基本语法为:
f2 FLAGS [OPTIONS] [PATHS TO FILES OR DIRECTORIES...]
第 1 步:确认安装成功
在终端或命令行中执行 f2 --version,能输出版本号即表示安装完成。
第 2 步:明确操作类型
每次操作必须提供 -f(查找)、-u(撤销)、-r(替换)或 --csv(CSV 重命名)中的至少一个参数。如果不指定路径,F2 默认搜索当前目录;也可以传入多个绝对或相对路径。
第 3 步:先预览,再执行
F2 默认运行在 dry-run 模式,只会以表格形式展示 ORIGINAL(原名)、RENAMED(新名)和 STATUS(状态)。例如把文件名中的连续空格替换为下划线:
f2 -f '[ ]{1,}' -r '_'
确认结果符合预期后,加上 -x/--exec 才会真正执行:
f2 -f '[ ]{1,}' -r '_' -x
第 4 步:处理冲突
如果预览中出现 conflict 提示,可以手动调整查找/替换规则,或直接加 -F/--fix-conflicts 让 F2 自动解决(例如为同名文件追加 (1)、(2) 数字后缀)。
第 5 步:出错就撤销
如果重命名结果不符合预期,执行 f2 -u 即可回滚上一次操作,恢复到重命名前的状态。
常用进阶技巧:
- 递归处理子目录:加
-R/--recursive,可用-m/--max-depth限制递归层级。 - 包含隐藏文件:默认排除隐藏文件,加
-H才会包含。 - 限制替换次数:用
-l/--replace-limit控制替换个数,例如-l 1只替换第一处,-l -1从后往前替换。 - 使用内置变量:在替换串中用
{p}(父目录)、{f}(文件名)、{ext}(扩展名)等变量,例如f2 -r "{p}_{f}{ext}"。 - 按元数据改名:可调用 Exif(图片)、ID3(音频)、ExifTool 标签与文件哈希等变量,实现按拍摄时间、歌名、艺术家等信息自动整理文件。
提示:Windows 用户在 CMD 中传递参数请统一使用双引号
",PowerShell 用户单双引号均可。
F2 的常见问题? #
F2 是免费的吗? F2 是一款免费开源软件,源码托管在 GitHub(ayoisaiah/f2),可自由下载、使用与查看源码。官网未提供付费版本或订阅计划。
执行命令后文件为什么没有变化?
这是正常现象——F2 默认运行在 dry-run 预览模式,只展示重命名结果而不真正修改文件。确认预览无误后,加上 -x/--exec 参数才会实际执行重命名。
F2 会不会误覆盖或损坏我的文件? F2 内置了完整的冲突检测机制,会识别禁止字符、名称碰撞、空文件名、路径覆盖、Windows 结尾句点、文件名超长等问题,并在执行前列出问题清单,冲突未解决前不会执行。官方仍建议在执行重要操作前做好文件备份。
Windows 下命令行报参数错误怎么办?
在 CMD 中为所有参数加双引号("),PowerShell 中单引号或双引号均可。此外,命令中若包含正则特殊字符(如 .、+、?、( 等),需要用反斜杠转义,或加 -s 参数把查找内容当作字面字符串处理。
可以用图片或音乐的元数据来重命名吗? 可以。F2 支持 Exif 变量(图片拍摄信息)、ID3 变量(音频标签)、ExifTool 变量以及文件哈希变量,能够按拍摄日期、歌曲标题、艺术家等属性自动生成新文件名。
重命名后还能恢复吗?
可以。F2 提供撤销功能,执行 f2 -u 即可回滚上一次重命名操作。若撤销时发现源文件已被移动或删除,F2 会将其标记为 source not found,配合 -F 可自动忽略这类文件继续执行。
隐藏文件会被处理吗?
默认不会。F2 默认排除隐藏文件,如果需要一并重命名隐藏文件,请显式加上 -H 参数。
F2 如何安装? #
F2 以独立二进制文件形式分发,不依赖额外运行时,也无需特殊权限。将二进制放入 $PATH 即可使用。除手动下载外,官方还提供多种包管理器安装方式(可自动管理更新并安装 man 手册、shell 补全文件)。
Windows #
方式一:Winget(推荐)
winget install ayoisaiah.f2
方式二:Scoop
scoop bucket add ayoisaiah-scoop-bucket https://github.com/ayoisaiah/scoop-bucket
scoop install f2
方式三:Chocolatey
choco install f2
方式四:手动安装二进制
- 下载
f2_2.2.2_windows_amd64.zip(或 386 版本); - 解压压缩包,得到
f2.exe; - 将
f2.exe移动到系统PATH中的某个目录,例如C:\Users\<user>\.bin; - 重新打开命令行,执行
f2 --version验证。
macOS #
方式一:Homebrew(推荐)
brew install f2
方式二:手动安装二进制
- 根据芯片类型下载
f2_2.2.2_darwin_arm64.tar.gz(Apple Silicon)或f2_2.2.2_darwin_amd64.tar.gz(Intel); - 解压并赋予可执行权限,然后移动到
$PATH目录:
tar -xvzf f2_2.2.2_darwin_amd64.tar.gz
chmod +x f2
sudo mv f2 /usr/local/bin
Linux #
方式一:Arch Linux(AUR)
yay -S f2-bin
方式二:Debian / Ubuntu 及其衍生版
从发布页下载 .deb 包后安装:
sudo dpkg -i f2_2.2.2_linux_amd64.deb
方式三:Fedora / CentOS
从发布页下载 .rpm 包后安装:
sudo rpm -i f2_2.2.2_linux_amd64.rpm
方式四:手动安装二进制(通用)
tar -xvzf f2_2.2.2_linux_amd64.tar.gz
chmod +x f2
sudo mv f2 /usr/local/bin
通过包管理器安装(跨平台通用) #
- Go(需 v1.23 及以上):
go install github.com/ayoisaiah/f2/v2/cmd/f2@latest
- NPM(需已安装 Node.js):
npm i @ayoisaiah/f2 -g
说明:使用 Go 或 NPM 安装时,请确保对应的 bin 目录已加入系统
PATH。官方提示其他包管理器不保证可用。
F2 如何卸载? #
F2 是单一二进制程序,卸载方式取决于你当初的安装途径,通常不会在系统中留下多余文件。
Windows #
- 通过 Winget 安装:执行
winget uninstall ayoisaiah.f2。 - 通过 Scoop 安装:执行
scoop uninstall f2。 - 通过 Chocolatey 安装:执行
choco uninstall f2。 - 手动安装二进制:直接删除
f2.exe(例如C:\Users\<user>\.bin\f2.exe)即可。 - 如通过"设置 → 应用 → 已安装的应用"列表能看到 F2,也可直接在该界面点击卸载。
macOS #
- 通过 Homebrew 安装:执行
brew uninstall f2。 - 手动安装二进制:删除
/usr/local/bin/f2(或你实际放置的路径),例如:
sudo rm /usr/local/bin/f2
Linux #
- Arch Linux(AUR):执行
yay -R f2-bin。 - Debian / Ubuntu:执行
sudo dpkg -r f2(或sudo apt remove f2)。 - Fedora / CentOS:执行
sudo rpm -e f2。 - 手动安装二进制:删除对应文件即可,例如
sudo rm /usr/local/bin/f2。
通过包管理器安装的卸载方式 #
- Go 安装:删除
$GOPATH/bin(通常为~/go/bin)下的f2可执行文件。 - NPM 安装:执行
npm uninstall -g @ayoisaiah/f2。
关于残留文件 #
F2 的撤销功能需要保存重命名历史数据,这类数据会存放在系统的用户缓存/临时目录中。官网文档未明确给出具体存储路径,如果你希望彻底清理,可在卸载后手动检查并删除系统中与 F2 相关的缓存目录。除该缓存外,F2 一般不写入注册表或其他系统级配置,卸载过程相对干净。
