I am trying to get the output of an ls command and search that list for a regex expression... Effectively, it will search every file name in the folder for the regex expression. I put together a simple example of what I thought was the right way to do this, but clearly was not:

$ ls ~/Desktop/testFolder | grep -rn "contents"

I know, I can make a script for this where I pipe the output from the 'ls' to a text file, and then grep that.. but I am asking how to do this WITHOUT a multistep process or script.


Your command should work, although you do not need the -r option in the grep command. What happens when you try running your command that is not what you expected?

ls /path | grep string

The above works for me.

You could also try looking at the find command:

find ~/Desktop/testFolder -iname '*contents*'

Hope this helps and good luck!

  • thanks a lot guys! and those were some fast damn responses! – FALL3N Jun 30 '11 at 1:25

Your only mistake is setting the -r option on grep.


Do you want: ls ~/Desktop/testFolder/*contents*

  • yes, but I understand how a regular 'ls' works, no problems there – FALL3N Jul 7 '11 at 4:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.