File: which.1

package info (click to toggle)
manpages-ja 0.5.0.0.20221215%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 29,304 kB
  • sloc: perl: 161; makefile: 61
file content (144 lines) | stat: -rw-r--r-- 5,310 bytes parent folder | download
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