/usr/bin/hash [utility]
/usr/bin/hash [-r]
hash [-r] [name]...
rehash
unhash
hashstat
hash [name]...
hash [-r]
/usr/bin/hash 实用程序影响当前 shell 环境记录所发现的实用程序的位置的方式。它根据指定的参数将实用程序位置添加至它记录的位置列表,或者清除该列表的内容。未指定参数时,它将报告列表的内容。使用 –r 选项时,shell 会清除它记录的所有位置。
hash 不会报告作为 shell 内置命令提供的实用程序。
对于每个 name,shell 都会确定并记录 name 指定的命令搜索路径中的位置。使用 hash 内置命令的 –r 选项时,shell 会清除所记录的所有位置。未指定任何参数时,hash 将提供有关已记录的命令的信息。输出中的 Hits 列是 shell 进程调用某个命令的次数。输出中的 Cost 列是找到搜索路径中的命令所需的工作量的度量。如果在搜索路径中的某个“相对”目录中找到一个命令,则更改到该目录后,该命令的存储位置将重新计算。需要对其执行此重新计算的命令由 Hits 信息旁的一个星号 (*) 予以指示。在执行重新计算后,Cost 将递增。
rehash 重新计算 path 环境变量中列出的目录内容的内部散列表,以便计入新添加的命令。
unhash 禁用内部散列表。
hashstat 输出一个统计信息行以指明内部散列表在定位命令(和避免执行 exec)时的有效程度。对于散列函数指示可能存在命中项的 path 的每个组件,以及在未以 " / " 开头的每个组件中,都将尝试执行 exec。
对于每个 name,shell 都会确定并记录 name 指定的命令搜索路径中的位置。使用 hash 内置命令的 –r 选项时,shell 会清除所记录的所有位置。未指定任何参数时,hash 将提供有关已记录的命令的信息。
hash 支持以下操作数:
要搜索和添加到所记录的位置列表的实用程序的名称。
未指定参数时,将使用 hash 的标准输出。标准输出的格式不指定,但将包含当前 shell 环境中记录的位置列表中每个实用程序的路径名。此列表由以前调用的 hash 调用中指定的那些实用程序构成,还可能包含通过普通命令搜索进程调用和找到的那些实用程序。
有关影响 hash 执行的以下环境变量的描述,请参见 environ(5):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH。
确定 utility 的位置。
hash 返回以下退出值:
成功完成。
出现错误。
有关下列属性的说明,请参见 attributes(5):
|