美文网首页
Linux 命令之 - type

Linux 命令之 - type

作者: googoler | 来源:发表于2021-03-10 13:48 被阅读0次

    概述

    一般情况下,type命令被用于判断另外一个命令是否是内置命令,但是它实际上有更多的用法:

    type: type [-afptP] 名称 [名称 ...]
        显示命令类型的信息。
    
        对于每一个 NAME 名称,指示如果作为命令它将如何被解释。
    
        选项:
          -a        显示所有包含名称为 NAME 的可执行文件的位置;
                    包括别名、内建和函数。仅当 `-p' 选项没有使用时
          -f        抑制 shell 函数查询
          -P        为每个 NAME 名称 *进行[1]* PATH 路径搜索,即使它是别名、
                    内建或函数,并且返回将被执行的磁盘上文件的名称。
          -p        返回将被执行的磁盘上文件的名称,或者当 `type -t NAME'
            不返回 `file' 时,不返回任何值。
          -t        返回下列词中的任何一个 `alias'、`keyword'、
            `function'、`builtin'、`file' 或者 `',相应地如果 NAME 是
            一个别名、shell 保留字、shell 函数、shell 内建、
            磁盘文件或没有找到。
    
        参数:
          NAME      将要解析的命令。
    
        退出状态:
        如果所有的 NAME 命令都找到则返回成功;任何一个找不到则失败。
    

    示例

    1. 判断一个名字当前是否是alias、keyword、function、builtin、file或者什么都不是:

      type ls 的输出是 ls 是 `ls --color=auto' 的别名
      type if 的输出是 if 是 shell 关键字
      type type 的输出是 type 是 shell 内嵌
      type frydsh 的输出是 bash: type: frydsh: 未找到
      
      
    2. 判断一个名字当前是否是alias、keyword、function、builtin、file或者什么都不是的另一种方法(适用于脚本编程):

      type -t ls 的输出是 alias
      type -t if 的输出是 keyword
      type -t if 的输出是 keyword
      type -t type 的输出是 builtin
      type -t gedit 的输出是 file
      type -t frydsh 没有输出
      
    3. 显示一个名字的所有可能:

      type -a kill 的输出是 kill 是 shell 内嵌 和 kill 是 /bin/kill
      type -at kill 的输出是 builtin 和 file
      
    4. 查看一个命令的执行路径(如果它是外部命令的话):

      type -p gedit 的输出是 /usr/bin/gedit
      type -p kill 没有输出(因为kill是内置命令)
      
    5. 强制搜索外部命令:

      type -P kill 的输出是 /bin/kill
      

    [1] 原 Centos 8 中文显示中翻译错误,显示为:“惊醒”

    相关文章

      网友评论

          本文标题:Linux 命令之 - type

          本文链接:https://www.haomeiwen.com/subject/zvjwqltx.html