A search tool like grep, optimized for programmers.

# To find files containing "foo":
ack <foo>

# To find files of a specific type:
ack --ruby <foo>

# To count the total number of matches for the term "foo":
ack -ch <foo>

# To show the file names containing "foo" and number of matches in each file:
ack -cl <foo>

# To list all valid types:
ack --help=types