How can I get a list of directories with ack?

1

0

I have a directory listing as follows (given by ls -la):

total 8
drwxr-xr-x   6 <user>  <group>  204 Oct 18 12:13 .
drwxr-xr-x   7 <user>  <group>  238 Oct 18 11:29 ..
drwxr-xr-x  14 <user>  <group>  476 Oct 18 12:31 .git
-rw-r--r--   1 <user>  <group>  601 Oct 18 12:03 index.html
drwxr-xr-x   2 <user>  <group>   68 Oct 18 12:13 test
drwxr-xr-x   2 <user>  <group>   68 Oct 18 12:13 test2

Running ack . -f prints out the files in the directory:

index.html

How can I get ack to print out the directories in the directory? I want to ignore the .git directory (which I understand is default behavior for ack). On that note, how can I ignore certain directories?

I am using ack 1.9.6 on Mac OSX 10.8.2.

knpwrs

Posted 2012-10-18T16:42:03.700

Reputation: 1 059

1Why do you want to use ack to list things instead of ls? – Alan Shutko – 2012-10-18T16:51:02.363

I need something I can readily pipe into xargs. My options are find --print0 (weird syntax, trying to stay away from it) and ack --print0, both of which readily pipe into xargs -0. – knpwrs – 2012-10-18T16:56:46.380

So how is ack --print0 less weird than find -print0? If you find a command hard to type/remember, make an alias. – user1686 – 2012-10-18T16:59:08.440

find . -name .git -a -type d -prune -o -type f -print0 simplifies to ack . -f --print0. Likewise, I want to find a way to simply find . -name .git -a -type d -prune -o -type d -print0 into its ack equivalent. – knpwrs – 2012-10-18T17:09:47.753

Answers

0

You can't. ack is only for files, not directories. It is a text search tool, not a general purpose file finder.

To ignore directories, use the --ignore-dir option.

Andy Lester

Posted 2012-10-18T16:42:03.700

Reputation: 1 121