パスが指定されていない場合、cd $ HOMEで構成されたcdコマンドはどこにありますか?

パスが指定されていない場合、cd $ HOMEで構成されたcdコマンドはどこにありますか?

次のコマンドは同じことを行います。

  • $ cd
  • $ cd $HOME
  • $ cd ~
  • $ cd /home/user

そのうち3つのパスは比較的指定されています。しかし、単にcdユーザーのホームディレクトリを開く方法と理由は何ですか?

答え1

これは文書化された動作です。POSIX規格:

  1. ディレクトリオペランドが指定されておらず、HOME環境変数がnull以外の値に設定されている場合、cdユーティリティは、HOME環境変数で指定されたディレクトリがディレクトリオペランドとして指定されているかのように機能する必要があります。

答え2

この機能は以下で提供されます。ボンシェルこの時間はバージョン7 Unix1979. このシステムでは、次のHOMEように記録されます。「コマンドの基本パラメータ(ホームディレクトリ)cd。 Bourne Shellの全身(トンプソンシェル引数なしで使用すると、エラーメッセージのみが印刷されますchdir(Bourneシェルではコマンド名も短くなりますcd)。

これを選ぶ権威ある情報源はありません。しかし、なぜならないのですか?cd引数がないと役に立たず、ホームディレクトリはユーザーが頻繁に戻る必要があるディレクトリです。構文~がまだ存在していないcdのでcd $HOME

Linuxシステムには通常、マニュアルページはありません。シェル組み込みコマンドとしてのみ使用できるコマンド。各シェルのマニュアルに文書化されています。

関連情報