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 mod-
       ify these tables by modifying one's PATH (for the command  hash  ta-
       ble)  or by creating appropriate shell parameters (for the named di-
       rectory hash table).  The choice of hash table to work on is  deter-
       mined 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  ta-
       ble, 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  directo-
       ries  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 se-
       lection 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 com-
       mand hash table, this means that whenever `name' is used as  a  com-
       mand  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.
