/home/larry# ls
Mail
letters
papers
/home/larry#
Here we can see that Larry has three entries in his current directory: Mail, letters, and papers. This doesn't tell us much---are these directories or files? We can use the -F option on the ls command to tell us more.
/home/larry# ls --F
Mail/
letters/
papers/
/home/larry#
From the / appended to each filename, we know that these three entries are in fact subdirectories.
Using ls -F may also append ``*'' to the end of a filename. This indicates that the file is an executable, or a program which can be run. If nothing is appended to the filename using ls -F, the file is a ``plain old file'', that is, it's neither a directory, or an executable.
In general, each UNIX command may take a number of options in addition to other arguments. These options usually begin with a ``-'', as demonstrated above with ls -F. The -F option tells ls to give more information about the type of the files involved---in this case, printing a / after each directory name.
If you give ls a directory name, it will print the contents of that directory.
/home/larry# ls --F papers
english-lit
history-final
masters-thesis
notes/
/home/larry#
Or, for a more interesting listing, let's see what's in the system's /etc directory.
/home/larry# ls /etc
Images ftpusers lpc rc.new shells
adm getty magic rc0.d startcons
bcheckrc gettydefs motd rc1.d swapoff
brc group mount rc2.d swapon
brc~ inet mtab rc3.d syslog.conf
csh.cshrc init mtools rc4.d syslog.pid
csh.login init.d pac rc5.d syslogd.reload
default initrunlvl passwd rmt termcap
disktab inittab printcap rpc umount
fdprm inittab.old profile rpcinfo update
fstab issue psdatabase securetty utmp
ftpaccess lilo rc services wtmp
/home/larry#
(For those MS-DOS users out there, notice how the filenames can be longer than 8 characters, and can contain periods in any position. It is even possible to have more than one period in a filename.)
Let's cd up to the top of the directory tree, using ``cd ..'', and then down to another directory: /usr/bin.
/home/larry# cd ..
/home# cd ..
/# cd usr
/usr# cd bin
/usr/bin#
You can also move into directories in multiple steps, as in cd /usr/bin.
Try moving around various directories, using ls and cd. In some cases, you may run into a foreboding ``Permission denied'' error message. This is simply the concept of UNIX security kicking in: in order to ls or to cd into a directory, you must have permission to do so. We'll talk more about this in Section 3.9.