where【コマンド】
コマンドだよ
WindowsとUNIX系で使えるよ
指定されたコマンドのパスをすべて表示するよ(UNIX系)
指定されたファイルの場所を表示するよ(Windows系)
簡単に書くよ
where【コマンド】とは
コンピュータさんに対する命令文(コマンド)のひとつ
であり
指定されたコマンドのパス
(ファイルやフォルダの場所(と名前)を示す情報)をすべて表示するコマンド(UNIX系のOS)
です。
もしくは
ファイルを探すときに使うコマンド(Windows系のOS)
です。
詳しく書くよ
UNIX系(LinuxとかMacとか)及びWindows系で使えます。
UNIX系とWindows系でコマンドの内容が全然違いますけどね。
まずはUNIX系OSにおける「where」コマンドについて説明します。
UNIX系OSの「where」コマンドは
コマンドがどこにあるか探すときに使うコマンド
です。
例えば「hoge」という名前のコマンドが複数あった場合、すべてのhogeの居場所を探してくれます。
書き方は
where [対象のコマンド(複数指定可)]
です。
オプションは、ありません。
「where」コマンドの使い方は単純です。
ただ探したいコマンドを指定すれば良いだけです。
例えば
where mkdir
を実行すると、私の環境では
/bin/mkdir
と表示されました。
コマンドを複数指定して
where mkdir rmdir
のような形で実行すると、例えば
/bin/mkdir
/bin/rmdir
のように表示されます。
指定したコマンドがエイリアスの場合は、元のコマンドが表示されますよ。
例えば
where ls
を実行すると、私の環境では
ls: aliased to ls --color=tty
/bin/ls
と表示されました。
対象のコマンドを指定しないで
where
と打った場合、怒られます。
ちなみに、ほぼ同じ動作をするコマンドに「which」があります。
「where」コマンドと「which」コマンドの違いは、大雑把に書くと
where:全部探す
which:今動いているものを探す
です。
「where」の方は、その名前のコマンドを全部探してくれます。
一方「which」の方は、そのコマンドを打つと実際に動く実体を探してくれます。
例えば「ls」コマンドを探したときに
■where ls
ls: aliased to ls --color=tty
/bin/ls
※「ls --color=tty」と「/bin/ls」があるよ
■which ls
ls: aliased to ls --color=tty
※「ls --color=tty」が動くよ
のような違いが出てくるのです。
これが「where」と「which」の違いです。
少し話がそれましたが、このように
指定されたコマンドのパスを表示してくれるコマンド
がUNIX系OSにおける「where」コマンドです。
次はWindows系OSにおける「where」コマンドについて説明します。
Windows系OSの「where」コマンドは
ファイルを探すときに使うコマンド
です。
UNIX系(LinuxとかMacとか)の「find」と用途は一緒です。
書き方は
where [オプション] [検索するパターン]
です。
オプションは少しだけあります。
| オプション | 説明 |
|---|---|
| /R | サブフォルダの中も探す |
| /Q | ファイルの一覧を表示しないで、終了コードのみを返す |
| /F | ファイル名をダブルクォーテーションで囲む |
| /T | ファイルサイズ、最終更新日時を表示する |
などです。
オプションは複数組み合わせて指定することも できます。
ファイル名は正規表現のパターンで指定できるので
where *hoge*
のような指定もできます。
この例の場合は、ファイル名に「hoge」を含むファイルが検索されます。
注意点としては「パス」ではなく「ファイル名」です。
例えば「C:\hoge\a.txt」のように、フォルダ名に指定した文字列(今回は「hoge」)が含まれるものは検索されません。
ご注意ください。
このように
ファイルを探すコマンド
がWindows系OSにおける「where」コマンドです。
一言でまとめるよ
まぁ「where」ってコマンドが出てきたら「コマンドの実体がどこにあるかを探す(UNIX系)、もしくはファイルがどこにあるかを探す(Windows系)ときに使うんだな~」と お考えください。






