hash 命令

用途

记住或报告命令路径名。

语法

将命令的路径添加到路径名列表
hashCommand ... ]
要清除路径名列表
hash -r

描述

hash 命令通过向列表添加路径名或清除列表内容来影响当前 shell 记住命令的路径名的方式。

如果未指定参数或标志,那么 hash 命令将向标准输出报告路径名列表的内容。 此报告包含由先前 hash 命令调用找到的当前 shell 环境中命令的路径名。 该屏幕还可以包含那些通过正常命令搜索过程调用和找到的命令。

注: hash 命令不会报告 Shell 内置命令。

可以使用 -r 标志清除命令路径名列表的内容。 还可以通过复位 PATH 环境变量的值从列表清除路径名。 用最简单的格式,这可以通过输入以下命令完成:

PATH="$PATH"

如果使用了 Command 参数,那么 hash 命令搜索指定命令的路径名并将该路径添加到列表。 当指定命令时,不要使用 /(斜杠)。

因为 hash 命令影响当前 shell 环境,所以它作为 Korn Shell 程序或 POSIX shell 常规内置命令提供。 如果 hash 命令在独立的命令执行环境中调用,如以下示例所示,那么它不会影响调用者环境的命令搜索进程:

nohup hash -r
find . -type f | xargs hash

使用 hash 命令等同于使用 alias -t 命令。

标志

表 1. 标志
描述
-r 清除路径名列表的内容。

参数

表 2。 参数
描述
命令 指定添加到路径名列表的 Command

退出状态

返回以下退出值:

表 3。 退出状态
描述
重大安全事件数量 成功完成。
>0 发生错误。

示例

  1. 要查找 wc 命令的路径名并将其添加到路径名列表,请输入:
    hash wc
  2. 要清除路径名列表的内容,请输入:
    hash -r

文件

表 4。 文件
描述
/usr/bin/ksh 包含 Korn shell 程序 hash 内置命令。
/usr/bin/hash 包含 hash 命令。