3.3.2 Looking at the contents of directories


Next: 3.3.3 Creating new directories Up: 3.3 First Steps into Previous: 3.3.1 Moving around

          Now that you know how to move around directories you probably think, « So what? » The basic skill of moving around directories is fairly useless, so let’s introduce a new command, ls. ls prints a listing of files and directories, by default from your current directory. For example:

/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/

READ  Graphics Muse

/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.


Next: 3.3.3 Creating new directories Up: 3.3 First Steps into Previous: 3.3.1 Moving around

Matt Welsh
mdw@sunsite.unc.edu