Unixのwhere
とコマンドの違いは何ですか?which
3 に答える
免責事項:これはcygwinを使用しているWindowsボックスにあります。
Which
は、1つの実行可能ファイルが複数に対して表示できるフルパスを示しWhere
ています。
$which git sh
/bin/git/
渡された最初の引数の相対パスのようなものを生成しますが、
$where git sh
渡されたすべての引数の絶対パスを生成します。つまり、私はWindowsボックスを使用しているので、次のような効果が得られます。
C:\Program Files (x86)\Git\bin\git.exe
C:\Program Files (x86)\Git\cmd\git.exe
C:\Program Files (x86)\Git\bin\sh.exe
他の答えに追加するために、私はウィンドウにのみ存在すると思います。
「where」は一般的な unix コマンドではないようで、man ページが見つかりませんでした。
ただし、ほとんどの Windows OS には「where」が存在します。
前述のリンクを参照してください。
WHERE (Windows 2003 + )
Locate and display files in a directory tree.
The WHERE command is roughly equivalent to the UNIX 'which' command.
By default, the search is done in the current directory and in the PATH.
「which」のマニュアルページに次のように記載されているため、これは理にかなっています。
WHICH(1)
NAME
which - shows the full path of (shell) commands.
Cygwinを使用していますか?
これは、「どの」と「どこ」の両方が同じ環境に存在する最も一般的なケースになるためです。
その環境では、コマンドがどこにあるかを示す「which」は、unix のような方法でのパスです。
$ which where
/cygdrive/c/Windows/system32/where
「where」は、ウィンドウのような方法でパスを表示します。
$ where which
C:\cygwin\bin\which.exe
whereisっていうの?これはバイナリを見つけるだけですが、wehereis はソースとマニュアル ページも見つけようとします。