javajo91 wrote: > "For example, if you wanted to list all of the files in the directories /usr > and usr2, you could type ls /usr*.
Because the '*' is a file glob. It is called a glob because it matches a glob of characters. The process of the expansion is called globbing. "/usr*" matches "/usr" and "/usr2" both. That is expanded on the command line. $ ls /usr* is the same as $ ls /usr /usr2 The ls command never sees a '*' because the shell expands it first. You can use echo to see what the shell has expanded. $ echo foo /usr* foo /usr /usr2 > If you were only interested in the files > beginning with the letters b and e in these directories, you could type ls > /usr*/[be]* to list them." The /usr* matches and expands to /usr /usr2 and then the [be]* matches "bin" and "etc". The result is the same as $ ls /usr/bin /usr/etc And so the contents of those directories are listed. Again you can see this using echo. [Most people won't have a /usr/etc on their system though and so that would not expand for them.] $ echo foo /usr*/[be]* /usr/bin /usr/etc > When i type /usr*/[be]* i do not get all the files within /usr that begin > with a b or an e but instead get ALL the files within /usr/bin and /usr/etc. Because you are asking ls to list those directories they are being listed for you. If you want to ask ls to list the directory arguments as a file instead of as a directory then you can add the -d option. (But it is almost the same as echo in that case.) $ ls /usr*/[be]* ...contents of /usr/bin and /usr/etc... $ ls -d /usr*/[be]* /usr/bin /usr/etc Also remember that directories are simply files in a Unix filesystem. They are special files and have special properties but files just the same. Bob