Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When using grep you can search for a specific regex, but only inside of a file. Is there any way, I can search for a folder name?

share|improve this question

migrated from Apr 6 '11 at 0:29

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

If you really mean regexp instead of shellglob, you may want to use

find <path> -regex '<regex>' -type d


find Code/ -E -regex '(bin|redblack)_tree\.hs' -type d

the option -E turns on extendend regexp, see man find for more.

share|improve this answer

I usually use find:

$ find . -name 'FolderBasename*' -type d

or for more complex queries

$ find . -regex '{FolderRegex}' -type d

As pointed out in the comments if you want case insensitive searches do -iname and -iregex

share|improve this answer
-name doesn't take a regular expression. If you need to match with a regular expression, you probably want -regex or -iregex – Mark Longair Apr 5 '11 at 19:32
@Mark You're right - my bad there. I usually only need the supported * and ? (see man find) to get things found. – AlG Apr 5 '11 at 19:37

If you are just concerned with matching the name you can simply use '-name' in find.

find <path> -name '<regex>' -type d
share|improve this answer

find is far better but a clunky answer to your question:

ls -l | grep '^d'
share|improve this answer

You must log in to answer this question.