1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.\"
.\" translated for 2.21, 2022-05-04 ribbon <ribbon@users.osdn.me>
.\"
.TH WHICH 1
.rn RS Rs
.de RS
.na
.nf
.Rs
..
.rn RE Re
.de RE
.Re
.fi
.ad
..
.de Sx
.PP
.ne \\$1
.RS
..
.de Ex
.RE
.PP
..
.na
.SH 名前
which \- (シェル) コマンドのフルパスを表示
.SH 書式
\fBwhich\fP [options] [\-\-] programname [...]
.SH 説明
\fBwhich\fP は 1 つまたは複数の引数を取ります。
その引数それぞれに対して、その引数がシェルプロンプトから入力された際に、実行されることになる実行モジュールのフルパスを stdout に出力します。
これを実現する際には、環境変数 \fBPATH\fP に列記されたディレクトリ内から実行ファイルやスクリプトを検索します。 これは \fBbash(1)\fP
と同じアルゴリズムを用いています。
このマニュアルページは \fIwhich.texinfo\fP ファイルから生成されています。
.SH オプション
.TP 4
\fB\-\-all\fP, \fB\-a\fP
\fBPATH\fP 内に見つかった実行ファイルすべてを表示します。 最初に見つかったもの以外も表示します。
.TP
\fB\-\-read\-alias\fP, \fB\-i\fP
標準入力からエイリアスを読み込んで、合致したものを標準出力します。 これは which そのものを含む alias
において、本オプションを合わせて利用すると便利です。 たとえば以下です。
.br
\fBalias which=\'alias | which \-i\'\fP.
.TP
\fB\-\-skip\-alias\fP
\`\-\-read\-alias\' が指定されても無視します。 which に対するエイリアスや関数の中で \`\-\-read\-alias\'
オプションを利用している場合であっても、 明示的に通常の実行ファイルを検索する場合に利用できます。
.TP
\fB\-\-read\-functions\fP
標準入力からシェル関数定義を読み込んで、合致したものを標準出力します。 これはwhich
そのものを含むシェル関数において、本オプションを合わせて利用すると便利です。 たとえば以下です。
.br
\fBwhich() { declare \-f | which \-\-read\-functions $@ }\fP
.br
export \-f which
.TP
\fB\-\-skip\-functions\fP
\`\-\-read\-functions\' が指定されても無視します。 which に対するエイリアスや関数の中で
\`\-\-read\-functions\' オプションを利用している場合であっても、明示的に通常の実行ファイルを検索する場合に利用できます。
.TP
\fB\-\-skip\-dot\fP
\fBPATH\fP 内のディレクトリのうち、ドットで始まるディレクトリは除外します。
.TP
\fB\-\-skip\-tilde\fP
チルダで始まる \fBPATH\fP 内のディレクトリ、および \fBHOME\fP ディレクトリ内に存在する実行ファイルは除外します。
.TP
\fB\-\-show\-dot\fP
\fBPATH\fP 内にドットで始まるディレクトリがあって、合致した実行ファイルがその中に見つかった場合には、フルパスでなく "./programname"
と表示します。
.TP
\fB\-\-show\-tilde\fP
ディレクトリが \fBHOME\fP に合致した場合、チルダを表示します。 このオプションは root ユーザーが実行した際には無視されます。
.TP
\fB\-\-tty\-only\fP
tty 上でない場合、この右側に指定されたオプションの実行を停止します。
.TP
\fB\-\-version,\-v,\-V\fP
バージョン情報を標準出力して正常終了します。
.TP
\fB\-\-help\fP
利用方法を標準出力して正常終了します。
.SH 返り値
\fBwhich\fP は検索に失敗した引数の数を返します。 また \`programname\' が指定されなかった場合は \-1 を返します。
.SH 例
このユーティリティーのお薦めの使い方は、 \fBwhich\fP に対するエイリアス (C シェル) やシェル関数 (Bourne シェル)
を追加して利用する方法です。 たとえば以下です。
[ba]sh の場合:
.in +5
.nf
.na
which ()
{
(alias; declare \-f) | /usr/bin/which \-\-tty\-only \-\-read\-alias \-\-read\-functions \-\-show\-tilde \-\-show\-dot $@
}
export \-f which
.in -5
.ad
.fi
[t]csh の場合:
.in +5
.nf
.na
alias which \'alias | /usr/bin/which \-\-tty\-only \-\-read\-alias \-\-show\-dot \-\-show\-tilde\'
.in -5
.ad
.fi
こうすることで、プロンプトから実行した場合には、見やすいように ~/ や ./ を出力します。
スクリプトから利用した場合には、そのままフルパスで出力します。
.in +5
.nf
.na
> which q2
~/bin/q2
> echo \`which q2\`
/home/carlo/bin/q2
.in -5
.ad
.fi
.SH バグ
\fBHOME\fP ディレクトリは、環境変数 \fBHOME\fP
を調べることで決定されますが、この変数が存在しない場合には、その処理がキャンセルされます。\fBwhich\fP は 2
つの同等のディレクトリであっても、その 1 つにシンボリックリンクを使ったパスが含まれている場合に、別のディレクトリと取り扱ってしまいます。
.SH 著者
.br
Carlo Wood <carlo@gnu.org>
.SH 関連項目
\fBbash(1)\fP
|