sharkdp/bat
效率与系统工具在终端里替代 cat 的文件查看工具,支持语法高亮、Git 修改标记和自动分页。
项目介绍
bat 面向需要在终端中阅读文件内容的用户,用更易读的方式替代 cat。它会为多种编程语言和标记语言提供语法高亮,在侧栏显示当前文件相对 Git 索引的修改标记,也可以通过 -A/--show-all 展示并高亮不可打印字符。默认情况下,输出较长时会通过 less 或配置的分页器翻页;一旦输出被管道接走或重定向到文件,它又退回纯文本输出,保持与 cat 类似的兼容性 README lines 22–53。项目使用 Rust 编写,除了命令行工具,也提供库接口供其他程序调用其格式化输出能力。
快速使用
在 Ubuntu 20.04+、Debian 11+ 等 Debian 系发行版上,可以直接从系统仓库安装:
sudo apt install bat
部分较旧的系统因包名冲突会把可执行文件安装为 batcat。如果 bat --version 不可用,先检查 batcat --version,再按需建立软链接或别名 README lines 256–277。安装后查看文件:
bat README.md
终端会显示带高亮、行号和文件头的内容。也可以用 bat src/*.rs 一次查看多个文件,或用 bat -A /etc/hosts 显示不可打印字符 README lines 54–85。其他平台和包管理器的安装方式(Homebrew、WinGet、Chocolatey、Scoop、Nix 以及预编译发布包)见 README 的安装章节。
管道与工具集成
当输出被管道接走或重定向时,bat 默认输出纯文本,只有显式要求时才保留装饰。因此 bat main.cpp | xclip 或通过重定向写文件都能正常工作 README lines 168–175。作为 fzf 预览器时要加 --color=always;配合 tail -f 时则需要关闭分页并显式指定语言:
tail -f /var/log/pacman.log | bat --paging=never -l log
使用约束
语法高亮在支持 truecolor 的终端中效果最好,否则可选用内置的 8-bit 主题。bat 原生支持 UTF-8 和 UTF-16,其他编码需要先用 iconv 等工具转换 README lines 877–885。Windows 上需要安装 Visual C++ Redistributable,分页还需要自行提供 less 等分页器。自定义语法和主题要放入配置目录,并通过 bat cache --build 重建缓存。项目采用 MIT 或 Apache-2.0 双许可证。
HotRepo 点评
bat 是一个成熟且使用面很广的终端工具:截至 2026 年 11 月 6 日的快照,它有 61,118 个 Star 和 3,055 个 Fork,在 Rust 日榜上单日新增 128 个 Star,排名第 16。Hacker News 上关于 v0.26.0 的讨论集中在新增的内置分页器,以及“Unix 组合式设计”与“一体化查看体验”之间的取舍;一位使用多年的用户称它是经过认真设计的 cat/less 替代品 评论。从本站视角看,它属于稳定耐用的日常工具,价值在文件查看本身,而不是新项目式的增长故事。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。