type - indicate how a command would be interpreted


type [OPTIONS] NAME [NAME ...]


With no options, type indicates how each NAME would be interpreted if used as a command name.

The following options are available:

  • -a or --all prints all of possible definitions of the specified names.

  • -s or --short suppresses function expansion when used with no options or with -a/--all.

  • -f or --no-functions suppresses function and builtin lookup.

  • -t or --type prints function, builtin, or file if NAME is a shell function, builtin, or disk file, respectively.

  • -p or --path prints the path to NAME if NAME resolves to an executable file in $PATH, the path to the script containing the definition of the function NAME if NAME resolves to a function loaded from a file on disk (i.e. not interactively defined at the prompt), or nothing otherwise.

  • -P or --force-path returns the path to the executable file NAME, presuming NAME is found in $PATH, or nothing otherwise. --force-path explicitly resolves only the path to executable files in $PATH, regardless of whether $NAME is shadowed by a function or builtin with the same name.

  • -q or --query suppresses all output; this is useful when testing the exit status. For compatibility with old fish versions this is also --quiet.

The -q, -p, -t and -P flags (and their long flag aliases) are mutually exclusive. Only one can be specified at a time.


>_ type fg
fg is a builtin