miseが管理するコマンドの実行ファイルがどこにあるか確認したい

ターミナルでOSのwhichコマンドを使っても、PATHの設定状況によっては、mise管理下のバージョンとは別の場所にインストールされた同名のコマンドを指す場合がある。mise whichを使うと、mise管理下で実際に使われる実行ファイルのパスを確実に確認できる。

mise which の基本

mise.tomljq = "1.7.1"と記述したディレクトリでmise which jqを実行する。

$ mise which jq
/home/user/.local/share/mise/installs/jq/1.7.1/jq

似たコマンドにmise where があるが、mise whereがツールのインストールディレクトリを表示するのに対し、mise whichは実行ファイル本体へのフルパスを表示する。

$ mise where jq
/home/user/.local/share/mise/installs/jq/1.7.1

$ mise which jq
/home/user/.local/share/mise/installs/jq/1.7.1/jq

バージョンやプラグイン名だけを確認する

--versionを付けると、パスの代わりにバージョン番号だけが出力される。

$ mise which jq --version
1.7.1

--pluginを付けると、そのコマンドを提供しているツール(プラグイン)名が出力される。

$ mise which jq --plugin
jq

特定のバージョンを指定して確認する

--toolオプションで<tool>@<version>を指定すると、mise.tomlの記述に関係なく、指定したバージョンの実行ファイルパスを確認できる。

$ mise which jq --tool jq@1.6
/home/user/.local/share/mise/installs/jq/1.6/jq

インストールされていないコマンドを指定するとエラーになる

miseが認識していないコマンド名を指定すると、エラーになる。

$ mise which yq
mise ERROR yq is not a mise bin. Perhaps you need to install it first.

このエラーが出た場合は、先にmise installでツールをインストールする。