nushell/docs/commands/which.md
Leonhard Kipp 48f535f02e
Display aliases and custom commands in which; fix #2810 (#2834)
* Display aliases and custom commands in which; Fix #2810

Example output of nu after the commit is applied:

```shell
/home/leo/repos/nushell(feature/which_inspect_alias)> def docker-ps [] { docker ps --format '{{json .}}' | from json -o }
/home/leo/repos/nushell(feature/which_inspect_alias)> which docker-ps
───┬───────────┬────────────────────────┬─────────
 # │    arg    │          path          │ builtin
───┼───────────┼────────────────────────┼─────────
 0 │ docker-ps │ nushell custom command │ No
───┴───────────┴────────────────────────┴─────────
/home/leo/repos/nushell(feature/which_inspect_alias)> alias d = gid pd
/home/leo/repos/nushell(feature/which_inspect_alias)> which d
───┬─────┬───────────────┬─────────
 # │ arg │     path      │ builtin
───┼─────┼───────────────┼─────────
 0 │ d   │ nushell alias │ No
───┴─────┴───────────────┴─────────
```

* Update documentation
2021-01-02 06:40:44 +13:00

3.7 KiB

which

Finds a program file.

Usage:

which {flags}

Parameters

  • application: the name of the command to find the path to

Flags

  • --all: list all executables

Examples

which finds the location of an executable:

> which python
─────────┬─────────────────
 arg     │ python
 path    │ /usr/bin/python
 builtin │ No
─────────┴─────────────────
> which cargo
─────────┬────────────────────────────
 arg     │ cargo
 path    │ /home/bob/.cargo/bin/cargo
 builtin │ No
─────────┴────────────────────────────

which will identify nushell commands:

> which ls
─────────┬──────────────────────────
 arg     │ ls
 path    │ nushell built-in command
 builtin │ Yes
─────────┴──────────────────────────
> which which
─────────┬──────────────────────────
 arg     │ which
 path    │ nushell built-in command
 builtin │ Yes
─────────┴──────────────────────────

Passing the all flag identifies all instances of a command or binary

> which ls --all
───┬─────┬──────────────────────────┬─────────
 # │ arg │ path                     │ builtin
───┼─────┼──────────────────────────┼─────────
 0 │ ls  │ nushell built-in command │ Yes
 1 │ ls  │ /bin/ls                  │ No
───┴─────┴──────────────────────────┴─────────

which will also identify local binaries

> touch foo
> chmod +x foo
> which ./foo
─────────┬────────────────────────────────
 arg     │ ./foo
 path    │ /Users/josephlyons/Desktop/foo
 builtin │ No
─────────┴────────────────────────────────

which also identifies aliases

> alias e = echo
> which e
───┬─────┬───────────────┬─────────
 # │ arg │     path      │ builtin
───┼─────┼───────────────┼─────────
 0 │ e   │ Nushell alias │ No
───┴─────┴───────────────┴─────────

and custom commands

> def my_cool_echo [arg] { echo $arg }
> which my_cool_echo
───┬──────────────┬────────────────────────┬─────────
 # │     arg      │          path          │ builtin
───┼──────────────┼────────────────────────┼─────────
 0 │ my_cool_echo │ Nushell custom command │ No
───┴──────────────┴────────────────────────┴─────────