424
Linux Cat (lemmy.zip)

ahh

~$ which cat
you are viewing a single comment's thread
view the rest of the comments
[-] dan@upvote.au 85 points 4 days ago* (last edited 4 days ago)

cat is misunderstood a lot. The purpose of cat is to combine multiple files together (it's literally short for "concatenate"), like cat *.log to combine all log files together.

If you're just using it for a single file, then you should just redirect the file to stdin. These two command lines behave similarly:

cat foo.txt | some-command
some-command < foo.txt

For head, tail, grep and some other commands, you can just pass in the file name directly as an argument (e.g. grep whatever foo.txt).

[-] qqq@lemmy.world 15 points 4 days ago

You'll see cat FILE | all the time because it's just a natural start to a pipeline. You cat FILE to see the content unfiltered before filtering it with further commands.

it’s just a natural start to a pipeline

[-] lokalhorst@feddit.org 16 points 4 days ago* (last edited 4 days ago)

If I just want to look at the file, is there a better way than cat foo.txt? I guess I can't just do < foo.txt

[-] mote@lemmy.ca 20 points 4 days ago

So close! you have to do cat < foo.txt :-) (/s)

[-] dan@upvote.au 13 points 3 days ago* (last edited 3 days ago)

Admittedly I still use cat for this.

This also works too, but it's more verbose:

echo "$(<foo.txt)"

It's mentioned in the Bash man pages:

The command substitution $(cat file) can be replaced by the equivalent but faster $(< file).

EDIT: I was just informed that simply <foo.txt works too.

[-] not_IO 5 points 3 days ago

how in the world is this not a useless use of echo and equivalent to <foo.txt

[-] dan@upvote.au 5 points 3 days ago

OK, TIL you can just do <foo.txt. I didn't think that worked. Thanks!

[-] not_IO 1 points 21 hours ago

i don't think you can but idk why that's by I'm asking

[-] MonkeMischief@lemmy.today 1 points 2 days ago

If it's really long, I use less , because it breaks it up into navigable pages instead of filling your entire buffer. :)

Never knew about just using < though! Cool!

You can use less. There are also specialized ones for that purpose like bat.

[-] shark_byte@lemmy.zip 16 points 4 days ago

yeah sure but the command is literally written for the humor.

[-] dan@upvote.au 19 points 4 days ago

I know, but I just wanted to mention this since a lot of new Linux users end up using cat this way :)

[-] Grail@multiverse.soulism.net 5 points 3 days ago
[-] shark_byte@lemmy.zip 5 points 4 days ago

ohhh but it's all humor that's the point of the post.

I mean as a new Linux user, I won't take anything from a humor group seriously.

[-] daychilde@lemmy.world 2 points 3 days ago

I would.

I'd be careful of jokes, sure, but geeks often can't help have real discussions. Like in this very thread

[-] eager_eagle@lemmy.world 10 points 4 days ago

I still like doing cat file.txt | grep thing because I often re-run it to find something else like cat file.txt | grep thing2 - and if I do that with grep, the pattern sits awkwardly in the middle instead of at the end

[-] tgt@programming.dev 9 points 4 days ago

< file.txt grep thing also works.

[-] sqw@lemmy.sdf.org 1 points 3 days ago

is it more obtuse

this post was submitted on 03 Aug 2026
424 points (100.0% liked)

Programmer Humor

32666 readers
661 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 3 years ago
MODERATORS