Created SC2002 (markdown)

koalaman
2014-02-08 14:42:15 -08:00
parent 2680cff34f
commit cc3409d6ca

21
SC2002.md Normal file

@@ -0,0 +1,21 @@
# Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.
### Problematic code:
cat file | tr ' ' _
### Correct code:
tr ' ' _ < file
### Rationale:
`cat` is a tool for con"cat"enating files. Reading a single file as input to a program is considered a [Useless Use Of Cat (UUOC)](http://en.wikipedia.org/wiki/Cat_(Unix)#Useless_use_of_cat).
It's more efficient and less roundabout to simply use redirection. This is especially true for programs that can benefit from seekable input, like `tail`.
Many tools also accept optional filenames, e.g. `grep -q foo file` instead of `cat file | grep -q foo`.
### Contraindications
None.