Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have started using ack which is much faster than grep. However using ack I want to search for file name rather than file contents. Is there a way to do that?

share

migrated from stackoverflow.com Apr 25 '10 at 14:24

This question came from our site for professional and enthusiast programmers.

3 Answers 3

up vote 13 down vote accepted

Use the right tool for the right job. If you want to search for filename, use 'find':

$ # search for all *.txt file in current directory
$ find . -iname "*.txt"
share
1  
very true. "once you hold a hammer in your hand everything starts to look like a nail" :) –  akira Apr 25 '10 at 15:05
2  
Well, ack (and grep) are nicer because you don't have to be explicit about regexes unless you want to. I usually just do a find . | ack whatev.ext –  Ehtesh Choudhury May 25 '12 at 15:49
    
This works for finding directories as well. –  Pratik Khadloya Jul 24 '12 at 17:03
ack -g REGEX

Print files where the relative path + filename matches REGEX

share

I agree it makes sense to use find if you're just searching for *.txt files. However, ack has powerful file-type detectiong features, so you can use

ack -f --perl

which will find all the Perl files, based on both the filename (*.pm, *.pl, *.t and *.pod) and the shebang line.

share

This site is currently not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .