Written by Chris Gregg, with modifications by Nick Troccoli
Click here for a walkthrough video.
If you need to find a file in a particular directory, you can use the
find command, which has a somewhat strange syntax:
$ pwd /afs/.ir/users/c/g/cgregg/cs107/assignments $ find . -name "hello.c" ./assign0/hello.c ./assign1/hello.c $
The first argument (
. above) is the directory you want to search (i.e., the current directory in the above search). This can be any directory:
$ find assign1 -name "hello.c" assign1/hello.c $
The second argument,
-name means, "search for the name", and the final argument (
"hello.c"), which is normally in quotes, gives the name to search for. This is different from
grep, which searches for text within files.
find also uses a slightly different wildcard than grep, so you can search for patterns like this (to search for all
$ find . -name "*.c" ./assign0/hello.c ./assign1/folder1/myProgram.c ./assign1/hello.c ./assign3/loop.c $
find command has a vast number of options; take a look at the
man pages for more information.