Networking Guide
Chapter 15, Configuring the NFS automounter

Simplifying map syntax

Simplifying map syntax

automount recognizes the ``&'' and ``*'' characters as having a special meaning within maps. Using these characters as string substitutions within automount maps reduces redundancy in each line of a map and saves a user from having to duplicate information. 

Ampersand (&)

Suppose you have an indirect map with a lot of subdirectories specified, for example:

   john                         moscow:/home/moscow:john
   mary                         moscow:/home/moscow:mary
   joe                          moscow:/home/moscow:joe
   able                         prague:/export/home:able
   baker                        sydney:/export/home:baker
                [.  .  .]             
Consider using string substitutions. If the string in the ``key'' field is repeated in the ``location'' field, you can use the ampersand character (&) in place of the key value string wherever it appears in the ``location'' field.

Using the ampersand, the above map now looks like:

   john                         moscow:/home/moscow:&
   mary                         moscow:/home/moscow:&
   joe                          moscow:/home/moscow:&
   able                         prague:/export/home:&
   baker                        sydney:/export/home:&
                [.  .  .]             
Suppose the name of the server is the same as the key itself, for instance:
   moscow                       moscow:/home/moscow
   sydney                       sydney:/home/sydney
   prague                       prague:/home/prague
   milan                        milan:/home/milan
   zurich                       zurich:/home/zurich
                [.  .  .]             
The use of the ampersand results in:
   moscow                       &:/home/&
   sydney                       &:/home/&
   prague                       &:/home/&
   milan                        &:/home/&
   zurich                       &:/home/&
                [.  .  .]             

You can also use key substitutions in a direct map:

   /usr/man                     moscow,seattle,zurich:/usr/man
This could be written as:
   /usr/man                     moscow,seattle,zurich:&
Notice that the ampersand substitution uses the whole key string, so if the key in a direct map starts with a ``/'' (as it should), that slash is carried over, and you could not do something like this:
   /progs                  &1,&2,&3:/export/src/progs
This is because automount interprets it as:
   /progs     /progs1,/progs2,/progs3:/export/src/progs


Asterisk (*)

Notice that all the entries in the ampersand indirect map examples have the same format. This permits you to use the usual substitute character, the asterisk (*). The asterisk reduces the whole thing to:

   *       &:/home/&
Here each ampersand is substituted by the value of any given key. This tells automount to mount /home/server from any known server.

Once automount reads the substitute key, it does not continue reading the map, so that the following map is viable:

   milan           &:/export/&
   zurich          &:/export/&
   *               &:/home/&
In the next map the last two entries are always ignored:
   *               &:/home/&
   milan           &:/export/&
   zurich          &:/export/&