.SH 書式
\fBwhich\fP [options] [\-\-] programname [...]
.SH 説明
-\fBwhich\fP は 1 つまたは複数の引数を取ります。
-その引数それぞれに対して、その引数がシェルプロンプトから入力された際に、実行されることになる実行モジュールのフルパスを stdout に出力します。
-ã\81\93ã\82\8cã\82\92å®\9fç\8f¾ã\81\99ã\82\8bé\9a\9bã\81«ã\81¯ã\80\81ç\92°å¢\83å¤\89æ\95° \fBPATH\fP ã\81«å\88\97è¨\98ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81\8bã\82\89å®\9fè¡\8cã\83\95ã\82¡ã\82¤ã\83«ã\82\84ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82\92æ¤\9cç´¢ã\81\97ã\81¾ã\81\99ã\80\82 ã\81\93ã\82\8cã\81¯ \fBbash(1)\fP
-ã\81¨å\90\8cã\81\98ã\82¢ã\83«ã\82´ã\83ªã\82ºã\83 ã\82\92ç\94¨ã\81\84ã\81¦ã\81\84ます。
+\fBwhich\fP は
+一つ以上の引数を取り、そうした引数のそれぞれについて、それがシェルプロンプトから入力された場合に、実行されていたであろう実行ファイルのフルパスを標準出力に書き出します。\fBwhich\fP
+ã\81¯ã\81\9dã\82\8cã\82\92è¡\8cã\81\86ã\81«ã\81\82ã\81\9fã\82\8aã\80\81 \fBbash(1)\fP ã\81¨å\90\8cã\81\98ã\82¢ã\83«ã\82´ã\83ªã\82ºã\83 ã\82\92使ç\94¨ã\81\97ã\81¦ã\80\81ç\92°å¢\83å¤\89æ\95° \fBPATH\fP
+ã\81«ã\83ªã\82¹ã\83\88ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92調ã\81¹ã\80\81å®\9fè¡\8cã\83\95ã\82¡ã\82¤ã\83«ã\82\84ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82\92æ\8d\9cã\81\97ます。
このマニュアルページは \fIwhich.texinfo\fP ファイルから生成されています。
.SH オプション
.TP 4
\fB\-\-all\fP, \fB\-a\fP
-\fBPATH\fP 内に見つかった実行ファイルすべてを表示します。 最初に見つかったもの以外も表示します。
+\fBPATH\fP 中で最初に引数に一致したものだけでなく、一致したすべての実行ファイルを表示します。
.TP
\fB\-\-read\-alias\fP, \fB\-i\fP
-æ¨\99æº\96å\85¥å\8a\9bã\81\8bã\82\89ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\82\92èªã\81¿è¾¼ã\82\93ã\81§ã\80\81å\90\88è\87´ã\81\97ã\81\9fã\82\82ã\81®ã\82\92æ¨\99æº\96å\87ºå\8a\9bã\81\97ã\81¾ã\81\99ã\80\82 ã\81\93ã\82\8cã\81¯ which ã\81\9dã\81®ã\82\82ã\81®ã\82\92å\90«ã\82\80 alias
-ã\81«ã\81\8aã\81\84ã\81¦ã\80\81æ\9c¬ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92å\90\88ã\82\8fã\81\9bã\81¦å\88©ç\94¨ã\81\99ã\82\8bã\81¨ä¾¿å\88©ã\81§ã\81\99ã\80\82 ã\81\9fã\81¨ã\81\88ã\81°ä»¥ä¸\8bです。
+æ¨\99æº\96å\85¥å\8a\9bã\81\8bã\82\89ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\82\92èªã\81¿è¾¼ã\82\93ã\81§ã\80\81å¼\95æ\95°ã\81«ä¸\80è\87´ã\81\99ã\82\8bã\82\82ã\81®ã\82\92æ¨\99æº\96å\87ºå\8a\9bã\81«æ\9b¸ã\81\8då\87ºã\81\97ã\81¾ã\81\99ã\80\82 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ which
+ã\82³ã\83\9eã\83³ã\83\89ã\81®ä»£ã\82\8fã\82\8aã\81«ä½¿ã\81\86ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\81§ä½¿ã\81\86ã\81¨è\89¯ã\81\84ã\81§ã\81\97ã\82\87ã\81\86ã\80\82 ã\81\9fã\81¨ã\81\88ã\81°æ¬¡ã\81®ã\82\88ã\81\86ã\81«です。
.br
\fBalias which=\'alias | which \-i\'\fP.
.TP
\fB\-\-skip\-alias\fP
-\`\-\-read\-alias\' が指定されても無視します。 which に対するエイリアスや関数の中で \`\-\-read\-alias\'
-オプションを利用している場合であっても、 明示的に通常の実行ファイルを検索する場合に利用できます。
+\`\-\-read\-alias\' が指定されても、それを無視します。 このオプションは、which コマンドの代わりに使うエイリアスや関数で
+\`\-\-read\-alias\' オプションを使用する場合に、 明示的に通常のバイナリを探すのに役に立ちます。
.TP
\fB\-\-read\-functions\fP
-æ¨\99æº\96å\85¥å\8a\9bã\81\8bã\82\89ã\82·ã\82§ã\83«é\96¢æ\95°å®\9a義ã\82\92èªã\81¿è¾¼ã\82\93ã\81§ã\80\81å\90\88è\87´ã\81\97ã\81\9fã\82\82ã\81®ã\82\92æ¨\99æº\96å\87ºå\8a\9bã\81\97ã\81¾ã\81\99ã\80\82 ã\81\93ã\82\8cã\81¯which
-ã\81\9dã\81®ã\82\82ã\81®ã\82\92å\90«ã\82\80ã\82·ã\82§ã\83«é\96¢æ\95°ã\81«ã\81\8aã\81\84ã\81¦ã\80\81æ\9c¬ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92å\90\88ã\82\8fã\81\9bã\81¦å\88©ç\94¨ã\81\99ã\82\8bã\81¨ä¾¿å\88©ã\81§ã\81\99ã\80\82 ã\81\9fã\81¨ã\81\88ã\81°ä»¥ä¸\8bです。
+æ¨\99æº\96å\85¥å\8a\9bã\81\8bã\82\89ã\82·ã\82§ã\83«é\96¢æ\95°å®\9a義ã\82\92èªã\81¿è¾¼ã\82\93ã\81§ã\80\81å¼\95æ\95°ã\81«ä¸\80è\87´ã\81\99ã\82\8bã\82\82ã\81®ã\82\92æ¨\99æº\96å\87ºå\8a\9bã\81«æ\9b¸ã\81\8då\87ºã\81\97ã\81¾ã\81\99ã\80\82 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ which
+ã\82³ã\83\9eã\83³ã\83\89ã\81®ä»£ã\82\8fã\82\8aã\81«ä½¿ã\81\86ã\82·ã\82§ã\83«é\96¢æ\95°ã\81«ã\81\8aã\81\84ã\81¦ä½¿ç\94¨ã\81\99ã\82\8bã\81¨ã\82\88ã\81\84ã\81§ã\81\97ã\82\87ã\81\86ã\80\82ã\81\9fã\81¨ã\81\88ã\81°ã\80\81次ã\81®ã\82\88ã\81\86ã\81«です。
.br
\fBwhich() { declare \-f | which \-\-read\-functions $@ }\fP
.br
export \-f which
.TP
\fB\-\-skip\-functions\fP
-\`\-\-read\-functions\' が指定されても無視します。 which に対するエイリアスや関数の中で
-\`\-\-read\-functions\' オプションを利用している場合であっても、明示的に通常の実行ファイルを検索する場合に利用できます。
+\`\-\-read\-functions\' が指定されてもそれを無視します。このオプションは which コマンドの代わりに使うエイリアスや関数で
+\`\-\-read\-functions\' オプションを使用しているに、明示的に通常のバイナリを探すのに役に立ちます。
.TP
\fB\-\-skip\-dot\fP
-\fBPATH\fP 内のディレクトリのうち、ドットで始まるディレクトリは除外します。
+\fBPATH\fP 中のドット (.) 1 個のディレクトリから始まるパスをスキップします。
+
+[訳注] 環境変数 PATH に ’.’ や (ありそうにないことですが) ’./bin’
+などが登録されている場合のことを言っています。’$HOME/.local'
+といったディレクトリのことではありません。そのへんの事情は、‘\-\-show\-dot’でも同じです。
.TP
\fB\-\-skip\-tilde\fP
チルダで始まる \fBPATH\fP 内のディレクトリ、および \fBHOME\fP ディレクトリ内に存在する実行ファイルは除外します。
と表示します。
.TP
\fB\-\-show\-tilde\fP
-ディレクトリが \fBHOME\fP に合致した場合、チルダを表示します。 このオプションは root ユーザーが実行した際には無視されます。
+ディレクトリに \fBHOME\fP ディレクトリと一致する部分があるときは、チルダを表示します。 このオプションは \fBwhich\fP が root
+権限で実行されている場合には無視されます。
.TP
\fB\-\-tty\-only\fP
-tty 上でない場合、この右側に指定されたオプションの実行を停止します。
+出力が端末でない場合は、これより右にあるオプションの処理を行いません。
+
+[訳注] このオプションに効果があるのは、'\-\-show\-dot', '\-\-show\-tilde', '\-\-skip\-dot',
+\&'\-\-skip\-tilde' に対してだけのようです。
.TP
\fB\-\-version,\-v,\-V\fP
バージョン情報を標準出力して正常終了します。
\fB\-\-help\fP
利用方法を標準出力して正常終了します。
.SH 返り値
-\fBwhich\fP は検索に失敗した引数の数を返します。 また \`programname\' が指定されなかった場合は \-1 を返します。
+\fBwhich\fP は検索に失敗した引数の数を返します。 また 引数に \`programname\' が指定されなかった場合は \-1 を返します。
.SH 例
-このユーティリティーのお薦めの使い方は、 \fBwhich\fP に対するエイリアス (C シェル) やシェル関数 (Bourne シェル)
-を追加して利用する方法です。 たとえば以下です。
+このユーティリティーの使用に当たっては、以下のように、エイリアスか (C shell の場合) シェル関数に (Bourne shell の場合)
+\fBwhich\fP コマンドの代わりに使用するものを追加しておくことをお勧めします。たとえば以下です。
[ba]sh の場合:
.ad
.fi
-ã\81\93ã\81\86ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81ã\83\97ã\83ã\83³ã\83\97ã\83\88ã\81\8bã\82\89å®\9fè¡\8cã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81è¦\8bã\82\84ã\81\99ã\81\84ã\82\88ã\81\86ã\81« ~/ ã\82\84 ./ ã\82\92å\87ºå\8a\9bã\81\97ã\81¾ã\81\99ã\80\82
-ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\81\8bã\82\89å\88©ç\94¨ã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81ã\81\9dã\81®ã\81¾ã\81¾ã\83\95ã\83«ã\83\91ã\82¹ã\81§å\87ºå\8a\9bã\81\97ます。
+ã\81\93ã\81®ã\82\88ã\81\86ã\81«ã\81\97ã\81¦ã\81\8aã\81\8fã\81¨ã\80\81which ã\82\92ã\83\97ã\83ã\83³ã\83\97ã\83\88ã\81\8bã\82\89å®\9fè¡\8cã\81\97ã\81\9fã\81¨ã\81\8dã\81«ã\81¯ã\80\81ã\83\91ã\82¹ã\82\92 ~/ ã\82\84ã\80\80./
+ã\81¨ã\81\84ã\81\86èªã\81¿ã\82\84ã\81\99ã\81\84å½¢ã\81§è¡¨ç¤ºã\81\97ã\81¾ã\81\99ã\81\8cã\80\81ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\81\8bã\82\89使ç\94¨ã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81é\80\9a常é\80\9aã\82\8aã\83\95ã\83«ã\83\91ã\82¹ã\81®è¡¨ç¤ºã\81«ã\81ªã\82\8aます。
.in +5
.nf
~/bin/q2
> echo \`which q2\`
/home/carlo/bin/q2
+
+[訳注] 実際には、こうした関数やエイリアスを端末のプロンプトから実行しようと、
+スクリプトから実行しようと、表示に変わりはありません。出力先が、標準出力や
+標準エラーか、それ以外かで違いが生じるようです
+(上記二番目の実行例では、標準入力に出力しています)。 念のため、ご自分でお試しください。
.in -5
.ad
.fi
.SH バグ
-\fBHOME\fP ディレクトリは、環境変数 \fBHOME\fP
-を調べることで決定されますが、この変数が存在しない場合には、その処理がキャンセルされます。\fBwhich\fP は 2
-つの同等のディレクトリであっても、その 1 つにシンボリックリンクを使ったパスが含まれている場合に、別のディレクトリと取り扱ってしまいます。
+\fBHOME\fP ディレクトリの特定は、環境変数 \fBHOME\fP を調べることで行われますが、変数 \fBHOME\fP
+が存在しない場合はこの特定作業は打ち切られます。また、\fBwhich\fP は
+二つのディレクトリが同じものであっても、片方のパスにシンボリックリンクが含まれている場合は、別のディレクトリと見なすことになります。
+
+[訳注] 前半の記述は古いようです。パッケージ同梱の NEWS ファイルによれば、 which\-2.19 以来、環境変数 \fBHOME\fP
+が設定されていない場合は、/etc/passwd ファイルが調べられ、そこでも指定されていない場合は、'/' がホームディレクトリになるとのことです。
.SH 著者
.br
Carlo Wood <carlo@gnu.org>