hash [ -Ldfmrv ] [ name[=value] ] ...
       hash can be used to directly modify the contents of the command hash
       table, and the named directory hash table.  Normally one would
       modify these tables by modifying one's PATH (for the command hash
       table) or by creating appropriate shell parameters (for the named
       directory hash table).  The choice of hash table to work on is
       determined by the -d option; without the option the command hash
       table is used, and with the option the named directory hash table is
       used.

       A command name starting with a / or with a relative path starting
       with ./ or ../ is never executed by lookup in the command hash
       table, and these can only be added to the table by explicit use of
       the hash command.  Such a command is always found by direct look up
       in the file system.

       Given no arguments, and neither the -r or -f options, the selected
       hash table will be listed in full.

       The -r option causes the selected hash table to be emptied.  It will
       be subsequently rebuilt in the normal fashion.  The -f option causes
       the selected hash table to be fully rebuilt immediately.  For the
       command hash table this hashes all (and only) the absolute
       directories in the PATH, and for the named directory hash table this
       adds all users' home directories.  These two options cannot be used
       with any arguments.  Both options remove any explicitly-added
       elements.

       The -m option causes the arguments to be taken as patterns (which
       should be quoted) and the elements of the hash table matching those
       patterns are printed.  This is the only way to display a limited
       selection of hash table elements.

       For each name with a corresponding value, put `name' in the selected
       hash table, associating it with the pathname `value'.  In the
       command hash table, this means that whenever `name' is used as a
       command argument, the shell will try to execute the file given by
       `value'.  In the named directory hash table, this means that `value'
       may be referred to as `~name'.

       For each name with no corresponding value, attempt to add name to
       the hash table, checking what the appropriate value is in the normal
       manner for that hash table.  If an appropriate value can't be found,
       then the hash table will be unchanged.

       The -v option causes hash table entries to be listed as they are
       added by explicit specification.  If has no effect if used with -f.

       If the -L flag is present, then each hash table entry is printed in
       the form of a call to hash.

rehash Same as hash -r.
