WHICH(1) WHICH(1)



NAME

which - 顯示出指令完整的路徑

SYNOPSIS(綱要)

which [options(選項)] [--] programname(程式名) [...]

PATH

/usr/bin/which

SHARE LIBRARY

libc.so.6 =>/lib/libc.so.6
/lib/ld-linux.so.2 => lib/libc.so.6

DESCRIPTION(敘述)
Which 可以接受一到多個參數.對於它自己每個的參數,它會把這個可 執行檔的完整路徑印在標準輸出上,當在提示列輸入可執行檔名稱. Which在藉由PATH這個環境變數來搜尋可執行檔和Script檔.這和bash 的演算法相同.

這個man page是由which.texinfo的檔案產生

OPTIONS(選項)

--all, -a

印出所有再PATH(路徑)中相符合的可執行檔,並不只有第一個

--read-alias ,-i

從標準輸入讀取aliases,回報相符合的可執行檔在標準輸出上,在 結合對於Which本身使用alias上相當重要. 例如

--skip-alias

如果有任何'--read-alias'的選項都當作沒有.對於在選項中有給? w alias的which而言, 用Which來找一般的binaries是十分有用的.

--skip-dot

省略在環境變數PATH中以dot為開始的目錄

--skip-tilde

省略環境變數PATH中以tilde為開始的目錄和在家目錄下的可執行檔

--show-dot

假如有一個目錄在環境變數PATH中,是由一個dot開始並且在這個路徑 下有相符合的可執行檔,那麼就會印./程式名而不印完整的路徑.

--show-tilde

當找到的目錄和家目錄相同則輸出tilde.當root使用Which時,這個選 項將被忽略

--tty-only

假如不在tty上,停止處理右邊的選項

--version, -v, -V

印出有關版本的資訊後離開

--help

印出使用資訊後離開

RETURN VALUE

Which傳回錯誤參數的數字,或者當找不到程式時傳回-1

EXAMPLE

把alias如下加上將是一個多用途的好方法

alias which=which --tty-only --show-tilde --show-dot

當使用Which,這將可以在提示列印出~/和./ .如果仍然想要印出完整的路徑 可以使用以下的敘述

>which q2

~/bin/q2
>echo `which q2`
/home/carlo/bin/q2

即使有個alias對於Which本身, Ailases仍然支援.一個使用這種用法的例子如 下

Aalias which=alias | which --tty-only --read-alias --show-tilde --sh
ow-dot


這將會印出對於每一符合所要求參數的alias ,如在tcsh上使用alias在 alias上

$ alias which alias \| /usr/bin/which -i !\* $ which which
which (alias | ./which -i !*)
/usr/bin/whcih

BUGS

HOME目錄是由HOME這個環境變數決定,如果沒有這個環境變數就跳出.which 將會相同的目錄視為不同,如果其中有一個目錄使用符號連結.

AUTHOR

Carlo Wood

SEE ALSO

bash(1)