1.03.1基礎
実行可能なcheck.shがカレントディレクトリにあるが、カレントディレクトリはPATHに含まれていない。
ファイルを直接実行する指定はどれか。
× 不正解
./check.shは現在のディレクトリを起点とする相対パスで、PATH検索に頼らず対象を指定する。
詳細解説
誤り
check.shPATHにカレントディレクトリがないため名前だけでは見つからない。
誤り。カレントディレクトリがPATHにないため、同じ場所にファイルがあっても名前だけでは解決されない。
正しい
./check.sh./でカレントディレクトリからの相対パスを明示する。
正しい。./が現在位置を明示し、PATH検索を使わずcheck.shへ到達する。
誤り
/check.shルートディレクトリ直下の絶対パスを表す。
誤り。先頭/はファイルシステムルートを表し、カレントディレクトリのファイルではない。
誤り
../check.sh親ディレクトリにあるcheck.shを指す。
誤り。..は親ディレクトリなので、現在位置にあるcheck.shとは異なる場所を指す。
実際に確かめる
一時的な検証環境で実行できる例です。
tmp=$(mktemp -d); printf '#!/bin/sh\necho checked\n' >"$tmp/check.sh"; chmod +x "$tmp/check.sh"; (cd "$tmp" && ./check.sh); rm -rf "$tmp"期待される結果
checked理解のポイント
- .はcurrent directory
- ./はrelative path
- /開始はabsolute path
確認時の注意
- 確認環境: POSIX shell / 一時実行ファイル
基礎のおさらい
スラッシュを含む名前
コマンド名に/が含まれると、シェルはPATH検索せず指定パスを実行する。
実行条件
通常ファイルを直接実行するには実行権限と、有効な実行形式またはshebangが必要である。
問題IDKL-101-443
確認環境POSIX shell / 一時実行ファイル
最終技術確認2026-08-13
誤り・権利侵害を報告