# hash

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           hash — remember or report utility locations
    


## SYNOPSIS



           hash **[**_utility_...**]**
    
           hash -r
    


## DESCRIPTION



           The _hash_ utility shall affect the way the current shell
           environment remembers the locations of utilities found as
           described in _Section 2.9.1.1_ , _Command Search and Execution_.
           Depending on the arguments specified, it shall add utility
           locations to its list of remembered locations or it shall purge
           the contents of the list. When no arguments are specified, it
           shall report on the contents of the list.
    
           Utilities provided as built-ins to the shell shall not be reported
           by _hash_.
    


## OPTIONS



           The _hash_ utility shall conform to the Base Definitions volume of
           POSIX.1‐2017, _Section 12.2_ , _Utility Syntax Guidelines_.
    
           The following option shall be supported:
    
           **-r** Forget all previously remembered utility locations.
    


## OPERANDS



           The following operand shall be supported:
    
           _utility_   The name of a utility to be searched for and added to
                     the list of remembered locations. If _utility_ contains
                     one or more <slash> characters, the results are
                     unspecified.
    


## STDIN



           Not used.
    


## INPUT FILES



           None.
    


## ENVIRONMENT VARIABLES



           The following environment variables shall affect the execution of
           _hash_ :
    
           _LANG_      Provide a default value for the internationalization
                     variables that are unset or null. (See the Base
                     Definitions volume of POSIX.1‐2017, _Section 8.2_ ,
                     _Internationalization Variables_ for the precedence of
                     internationalization variables used to determine the
                     values of locale categories.)
    
           _LC_ALL_    If set to a non-empty string value, override the values
                     of all the other internationalization variables.
    
           _LC_CTYPE_  Determine the locale for the interpretation of sequences
                     of bytes of text data as characters (for example,
                     single-byte as opposed to multi-byte characters in
                     arguments).
    
           _LC_MESSAGES_
                     Determine the locale that should be used to affect the
                     format and contents of diagnostic messages written to
                     standard error.
    
           _NLSPATH_   Determine the location of message catalogs for the
                     processing of _LC_MESSAGES_.
    
           _PATH_      Determine the location of _utility_ , as described in the
                     Base Definitions volume of POSIX.1‐2017, _Chapter 8_ ,
                     _Environment Variables_.
    


## ASYNCHRONOUS EVENTS



           Default.
    


## STDOUT



           The standard output of _hash_ shall be used when no arguments are
           specified. Its format is unspecified, but includes the pathname of
           each utility in the list of remembered locations for the current
           shell environment. This list shall consist of those utilities
           named in previous _hash_ invocations that have been invoked, and may
           contain those invoked and found through the normal command search
           process.
    


## STDERR



           The standard error shall be used only for diagnostic messages.
    


## OUTPUT FILES



           None.
    


## EXTENDED DESCRIPTION



           None.
    


## EXIT STATUS



           The following exit values shall be returned:
    
            0    Successful completion.
    
           >0    An error occurred.
    


## CONSEQUENCES OF ERRORS



           Default.
    
           _The following sections are informative._
    


## APPLICATION USAGE



           Since _hash_ affects the current shell execution environment, it is
           always provided as a shell regular built-in. If it is called in a
           separate utility execution environment, such as one of the
           following:
    
               nohup hash -r
               find . -type f | xargs hash
    
           it does not affect the command search process of the caller's
           environment.
    
           The _hash_ utility may be implemented as an alias—for example, _alias_
           **-t -** , in which case utilities found through normal command search
           are not listed by the _hash_ command.
    
           The effects of _hash_ **-r** can also be achieved portably by resetting
           the value of _PATH_ ; in the simplest form, this can be:
    
               PATH="$PATH"
    
           The use of _hash_ with _utility_ names is unnecessary for most
           applications, but may provide a performance improvement on a few
           implementations; normally, the hashing process is included by
           default.
    


## EXAMPLES



           None.
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           None.
    


* * *