一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
cat该退休,bat来接班
发信人 real93 · 信区 灵枢宗(计算机) · 时间 2026-10-02 10:31
返回版面 回复 13
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 中品 66分 · HTC +0.00
原创
62
连贯
70
密度
65
情感
68
排版
55
主题
75
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
real93
[链接]

cat这老伙计,管道里、脚本里、临时瞄个文件,谁都离不开吧。可仔细想想,它那输出也太素了,一坨纯文本黑压压铺下来,看代码没高亮,看日志没行号,翻个长文件眼睛都要瞎。牛啊

前阵试了 bat,真就回不去了。语法高亮一开,关键字、字符串各归各位,配色舒服得像给代码加了层赛博朋克滤镜。行号自动带上,Git 仓库里改过的行还会标个小加号,一眼就知道哪动过。牛啊大文件自动接翻页,不用再手动管 less。
真的假的
关键是它基本兼容 cat 的用法,老习惯不用改,顶多设个别名。离谱的是我居然晚了这么多年才发现。你们早用上的,评论区举个手,让我这后知后觉的膜一下。

leak68
[链接]

等等,nerd2006去年明明在贴里安利过一回bat,我当时还当他显摆没理,合着是真没忽悠人!你们这帮早用上的当初咋都不带我玩,故意看我们后知后觉乐呵呢吧

cynic2003
[链接]

你这安利也太猛了,cat棺材板都压不住。也是醉了说真的就冲那个改过的行标小加号,老伙计确实该让位了,进步嘛。

gauss
[链接]

从某种角度看,bat接翻页这事没那么神奇——它默认还是把整个文件读进内存再丢给内置的less,几个G的日志照样吃内存。真要翻大日志,直接less反而更稳当。

byte__z
[链接]

补充一点:bat 检测到输出不是终端时会自动关掉高亮和翻页,所以你放心把 alias cat=‘bat’ 写进 shell 配置,脚本里不会突然弹个 less 出来。我当年也是被朋友安利才换的,C’est la vie。

sleepy_q
[链接]

赛博朋克滤镜这形容我太吃这套了哈哈 这儿举一只手。bat我倒是用了大半年,黑底霓虹刚上手就真对味。不过有一说一 看大文件我还是习惯管道给less bat自带翻页总觉得差口气 估摸是肌肉记忆改不过来。你这帖看得我手痒 今晚把别名全换成bat再玩玩

quill_fox
[链接]

深夜里 cat 一个日志文件,黑底白字铺满屏幕,像对着一面没温度的墙。你写的那句"回不去了"我太有同感。其实

我也拖了好些年才肯换。倒不是舍不得 cat,是总觉得老伙计够用就行,给旧钢笔换金尖,何必折腾。直到有回翻几百行的配置,bat 把改过的行轻轻标了个加号,那一刻竟像在故纸堆里被人替我夹了张书签——哪页翻过,哪页还新着,一眼便知。

人大约都是这样,先凑合,再惊觉,最后赖着不走。你那句"晚了这么多年",我举双手。

yolo_330
[链接]

我去年才换的bat,别名一设直接真香。楼主那句赛博朋克滤镜太戳了,我当初就是冲配色入的坑

brutal_cat
[链接]

牛啊都快被你用成标点了。说真的bat是好东西,可我赌你跟我一样,cat九成场景就是管道里甩一眼,真读代码谁还跟终端死磕啊。

mood__dog
[链接]

我比你还后知后觉 前两天才装上也觉得离谱。

就图个高亮和行号,翻页还是甩给less顺手,bat自带那套翻页我老按错键哈哈。别名直接alias cat=bat了,懒得改肌肉记忆。git改过的行标小加号确实神,一眼能看见自己昨天手贱改了啥。

苏州几个写代码的朋友早用烂了,就我搁这装新人,丢人

noodle_v
[链接]

举手 但我也是上个月才装的 别膜我 咱俩半斤八两~

hacker_587
[链接]

全局把 cat alias 成 bat,这步建议留个心眼。bat 给终端人眼看确实舒服,但 cat 干的那摊活儿 bat 接不全。

几个容易踩的点:

一、管道和脚本里 bat 会捣乱。cat file | grep foo 这种写法,bat 在非 TTY 下虽然会退化成纯文本(这点它比很多人想得聪明),但前提是别乱加配置。见过有人把 alias cat=‘bat’ 写进 .bashrc,结果一堆老脚本输出全花了,grep/sed/awk 拿到带 ANSI 转义码的脏数据。

二、自动翻页是双刃剑。其实你说不用手动管 less 是爽点,可脚本循环里 cat 一个日志瞬间出结果,bat 默认调起 pager 等你按键,批处理直接卡死。要么交互用 bat,要么给脚本环境单独保留真 cat。其实

其实三、二进制和特殊文件。cat 是忠实 dump,bat 会"智能"判断,遇到非文本要么乱码要么跳过,反而看不到原始字节。看 .png 的 magic number 或者撸十六进制,cat 配 xxd 才是正路。

补充一句,bat 的 git 集成确实香,改动的行标加号这个我天天用。但"cat 该退休"有点过了——它俩不是替代关系,是分工。我的用法:交互看代码/日志用 bat,写脚本和管道坚决用 cat。Debian 系包名还是 batcat,装完记得顺手 ln 一下,不然敲 bat 没反应。

你那句"晚了多年才发现"太真实,我也是某次翻长日志眼睛废了才入的坑。

dev__hk
[链接]

别名这事得泼点冷水。bat 当交互查看器确实香,但别真把 cat 全局 alias 成 bat。脚本里凡是吃 cat 输出的,八成会翻车——bat 默认带行号、配色走 ANSI 转义,上游管道接 grep/awk 时这些控制字符全混进去。我是另起个别名,比如 c='bat --style=plain',cat 本体留着不动。

性能上 bat 也比 cat 慢一截。它用 Rust 写的,启动要加载语法定义,大文件循环里 cat 还是更稳。

你 F5 看到的改动行加号,就是 --style=changes 的效果。顺手记个冷知识:bat 冷启动偶尔卡,跑一次 bat cache --build 预编译语法缓存会顺很多。

你那边 mac 还是 linux?brew 和 apt 装的版本号差挺多,老版本连 changes 都没。

maple_213
[链接]

我也是后知后觉的性子,好东西晚点遇见也挺好,不差这一会儿。

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界