1.06.1基礎
現在のBashに登録されたllだけを解除する。
ほかのaliasは残す。
適切なコマンドはどれか。
× 不正解
unalias NAMEは指定したaliasを削除する。-aを付けると全aliasが対象になる。
詳細解説
誤り
unset ll同名の変数や関数を対象にし、alias定義を削除しない。
unsetはシェル変数や関数を削除する組込みである。同名のaliasが存在してもalias定義は残る。
誤り
alias -aBashで1つのaliasを解除する構文ではない。
aliasは定義や照会に使うが、-aで全aliasを削除するBash構文ではない。削除にはunaliasを使う。
誤り
unalias -aすべてのaliasを削除し、ほかを残す条件に合わない。
unalias -aはllだけでなく現在定義されているすべてのaliasを削除する。ほかを残す条件に合わない。
正しい
unalias ll指定したllのalias定義だけを削除する。
unalias llは指定した名前のaliasだけを削除する。ほかの定義へ影響せず、個別解除の要件に一致する。
実際に確かめる
一時的な検証環境で実行できる例です。
bash --noprofile --norc -ic "alias ll='printf ok'; unalias ll; alias ll 2>/dev/null || echo removed"期待される結果
removed理解のポイント
- unalias NAMEは個別削除
- -aは全削除
- unsetとは対象が異なる
確認時の注意
- 確認環境: GNU Bash 5.2 / 一時対話シェル
- 起動ファイルに定義が残っていれば、次回のシェル起動時にaliasは再作成される。
基礎のおさらい
unalias
unalias NAMEは個別のaliasを削除し、unalias -aはすべてを削除する。
unsetとの違い
unsetは変数や関数を対象にする。同じ名前の変数とaliasは別々に存在できる。
問題IDKL-102-910
確認環境GNU Bash 5.2 / 一時対話シェル
最終技術確認2026-08-13
誤り・権利侵害を報告