Skip to main content
Subscribe via RSS Feed

Search the site

Search for blog posts, talks, projects, and more

↑↓NavigateEnterOpenESCClose

Stop using cat

2 min read
Table of Contents

If you use cat in your daily workflow, this is a tiny upgrade with lots of upsides and honestly, no downsides aside from you need to install it as it’s not native.

What is bat?#

bat is a cat alternative with syntax highlighting and line numbering to name a few features while being a drop in replacement to workflows you have that use regular cat.

Install#

Terminal window
# macOS
brew install bat
# Ubuntu / Debian
sudo apt install bat
# via installation script
curl -s https://sh.rustup.rs | bat

Just FYI, once it’s installed, on some Linux distros, the binary is named batcat.

Six practical ways to use bat#

By default you get all the bat goodness when you don’t specify any flags. Syntax highlighting, line numbering etc. Here’s some common use cases.

Read config files quickly#

Terminal window
bat ./astro.config.mjs

With cat:

cat outputting an Astro configuration file

With bat:

bat outputting an Astro configuration file

You get visual structure without opening an editor.

Show line numbers while debugging#

Terminal window
bat -n src/server.ts

Line numbers make it much easier to point teammates to exact spots in a file.

Use plain mode for logs or scripts#

Terminal window
bat -p logs/app.log

-p strips the decorations when you want cleaner output.

Focus on a line range#

Terminal window
bat --line-range 40:120 src/index.ts

Great when you only need one section of a file.

Quickly review changed files#

Terminal window
git diff --name-only | xargs bat

Useful for a quick scan of touched files before a commit or review.

Terminal window
bat large-file.log

bat automatically pipes output through a pager like less when the file is longer than your terminal window. No need to manually pipe to less like you would with cat.

Should you alias cat to bat?#

I alias it, because YOLO, but if you do run into issues, just alias it to something other than cat, or not at all.

Terminal window
alias c='bat'

TL;DR#

bat is one of the easiest terminal upgrades you can make. If you read code, logs, or config files in the terminal every day, switching from cat to bat is a no brainer.

If you want to stay in touch, all my socials are on nickyt.online

Until the next one!