助け合いフォーラム

LPIC

LPIC Lv1-101(Ver5.0)
問題ID : 3238
問題を開く
指定したコマンドが格納されている場所を、環境変数PATHで設定しているディレクトリから検索し、そのパスを表示するコマンドは次のうちどれか。

正解

which

解説

whichコマンドは指定したコマンドが格納されている場所を検索し、そのパスを表示します。検索するディレクトリは環境変数PATHで設定されている(パスが通っている)ディレクトリです。デフォルトでは、最初にコマンドが見つかったディレクトリのパスを表示します。

したがって正解はwhichコマンドです。

例)環境変数PATHで設定しているディレクトリのうち、cpコマンドのあるパスを表示する場合

$ which cp
/bin/cp

環境変数PATHに設定されていないディレクトリは検索対象になりません。したがって一般ユーザが管理者用のコマンドを検索することは出来ません。

その他の選択肢については以下のとおりです。
・locate
コマンドに限らず、指定した検索パターンにマッチするファイルを全て表示しますので、誤りです。また検索場所に環境変数PATHの値を使用しません。

・whereis
コマンドが格納された場所を検索しますが、検索する場所に環境変数PATHの値を使用せず、コマンドの格納される標準的なディレクトリの中から検索し、絶対パスで表示します。

・whichis
・look
存在しないコマンドです。

上に戻る

正解が間違っています

公開日 2022/07/15

whichの出力は絶対パスとは限りません(PATH環境変数の値に依ります).

$ touch cmd
$ chmod +x cmd
$ export PATH=.:$PATH
$ which cmd
./cmd

一方,whereisはPATH環境変数を参照し,PATH環境変数の値に依らず絶対パスになります.

$ touch cmd
$ chmod +x cmd
$ export PATH=.:$PATH
$ whereis cmd
cmd: /tmp/tmp.dBUCuH4J0I/cmd

よって,whereisが正解と考えます.

スタッフからの返信

s staff_meg

2022/07/19 16:15

ottijpさん、 ご指摘の点を修正致しました。 ご報告、誠にありがとうございました。

この投稿に対して返信しませんか?