PSA about abuse of cat(1) command. Don't abuse cats

Linux users are fighting over a tiny shortcut, and the comments are claws out

TLDR: The post says using `cat` to pass a single file into another command is an unnecessary extra step, and offers cleaner alternatives. But the comments instantly split into camps: purists called it bad form, while everyone else shrugged, joked, and said convenience matters more than tiny savings.

A tiny command-line public service announcement saying "don’t abuse cats" somehow turned into a full-on internet cage match. The original point was simple: if a tool can open a file by itself, you don’t need to send that file through cat first. In plain English, critics say it’s an extra, pointless step. The post even came with cute cat art and a plea to let cat be cat—which only made everyone even more dramatic about it.

The comments, though? That’s where the real fur started flying. One side treated this like ancient internet law, with users invoking the old-school "Useless Use of Cat" tradition like they were citing sacred scripture. Others were absolutely not having the sermon. One commenter basically rolled their eyes and said, in an era of bloated web browsers eating mountains of memory, this is what we’re policing? Another flat-out admitted, "I’m going to keep doing it," which is exactly the kind of petty rebellion the internet was built for.

Then came the practical crowd, arguing that starting with cat file | ... is just easier when you’re experimenting and changing the command later. Translation: yes, maybe it’s "wrong," but it’s convenient, and convenience wins a lot of fights online. So the real drama wasn’t about saving computer effort at all—it was a classic nerd culture showdown: purity versus practicality, with cat memes caught in the crossfire.

Key Points

  • The article argues that piping a single file through `cat` before `grep` is unnecessary when `grep` can read the file directly.
  • It states that using `cat` in this way creates an extra process whose only role is copying bytes to another command.
  • The article says `cat(1)` is intended for concatenating files.
  • It provides `grep -v '^#' /etc/app/config` as a direct alternative to a `cat ... | grep ...` pattern.
  • It also gives direct alternatives for `wc` and `head`, replacing `cat file | wc -l` with `wc -l < file` and `cat file | head -n 5` with `head -n 5 file`.

Hottest takes

"I’m going to keep doing it" — Shadowmist
"there are far more things to worry about than cat. How about your multi-gig browser" — jmclnx
"putting cat first can often be quite convenient" — antonvs
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.