cat is part of Unix utilities. It reads files and spits their contents back out into standard output. It’s often used in scripts to pipe the contents of a file to a subsequent command.
This certainly isn’t the intended use case though, as is obvious once you realise that
cat actually stands for
concatenating. It’s simply a tool for reading multiple files at once and printing them without adding any additional formatting.
Apparently, this made parts of the Linux community so grumpy, that they coined the term UUOC, “useless use of cat”.
Imagine using a tool for more than one thing… sacrilegious!
Lastly, its entry in a previous version of the linux-glossary-jargon-file which made me laugh quite a bit:
- To spew an entire file to the screen or some other output sink without pause (syn. blast).
- By extension, to dump large amounts of data at an unprepared target or with no intention of browsing it carefully. Usage: considered silly. Rare outside Unix sites. See also linux-cli-dd, BLT.
Among Unix fans, cat(1) is considered an excellent example of user-interface design, because it delivers the file contents without such verbosity as spacing or headers between the files, and because it does not require the files to consist of lines of text, but works with any sort of data.
Among Unix critics, cat(1) is considered the canonical example of bad user-interface design, because of its woefully unobvious name. It is far more often used to blast a single file to standard output than to concatenate two or more files. The name cat for the former operation is just as unintuitive as, say, LISP’s cdr^.