0

Unixのwhereとコマンドの違いは何ですか?which

4

3 に答える 3

1

免責事項:これは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

他の答えに追加するために、私はウィンドウにのみ存在すると思います。

于 2013-02-07T13:48:47.257 に答える
1

「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
于 2013-02-07T13:45:41.423 に答える
1

whereisっていうの?これはバイナリを見つけるだけですが、wehereis はソースとマニュアル ページも見つけようとします。

于 2013-02-07T13:34:34.737 に答える