助け合いフォーラム
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
存在しないコマンドです。
正解が間違っています
o
ottijp
公開日 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さん、 ご指摘の点を修正致しました。 ご報告、誠にありがとうございました。