pwdコマンドの詳細解説
`pwd`(print working directory)コマンドは、UNIX系オペレーティングシステムにおいて、現在の作業
ディレクトリ(カレント
ディレクトリ)の絶対パスを表示するために使用されます。このコマンドは、ユーザーがファイルシステム内のどの場所にいるかを正確に把握する上で非常に重要な役割を果たします。
コマンドの概要
`pwd`コマンドを実行すると、システムはカレント
ディレクトリのフルパスを文字列として出力します。この情報は、特にコマンドラインインターフェース(CLI)で作業している際に、自分が現在どの
ディレクトリにいるかを確認するために役立ちます。
例えば、以下のようにコマンドを実行します。
bash
pwd
このコマンドを実行すると、以下のような出力が得られます。
/home/user/documents
これは、現在の作業
ディレクトリが`/home/user/documents`であることを示しています。
コマンドの実装
`pwd`コマンドは、通常、`getcwd(2)`などのシステムコールを利用して実装されています。`getcwd(2)`は、現在の作業
ディレクトリのパスを取得するためのシステムコールであり、これを利用することで、`pwd`コマンドは現在の
ディレクトリパスを特定できます。
このため、`pwd`コマンドは必ずしも
シェルに組み込まれている必要はありません。しかし、多くの
シェル(例えば、`sh`や`bash`)では、利便性のために組み込みコマンドとして提供されています。
一方、
MS-DOSやWindowsの
シェル(`COMMAND.COM`や`cmd.exe`)では、`cd`コマンドを引数なしで実行することで、同様の機能が実現できます。
オプション
POSIX標準では、`pwd`コマンドには以下のオプションが定義されています。
`-L` または `--logical`:論理的なカレント
ディレクトリ名を出力します。これは、シンボリックリンクを解決せずに、シンボリックリンクとして指定されたパスをそのまま表示します。
`-P` または `--physical`:物理的なカレント
ディレクトリ名を出力します。もし現在の
ディレクトリがシンボリックリンクである場合、リンク先の実際の
ディレクトリパスを表示します。
例えば、カレント
ディレクトリがシンボリックリンクの場合、`-L`オプションではシンボリックリンクのパスが、`-P`オプションではシンボリックリンク先のパスが表示されます。
bash
カレントディレクトリがシンボリックリンクの場合
pwd -L # シンボリックリンクのパスを表示
pwd -P # シンボリックリンク先のパスを表示
これらのオプションは、特にシンボリックリンクを多用する環境で、目的の
ディレクトリパスを正確に把握するために役立ちます。なお、
シェル組み込み版の`pwd`を使用している場合、これらのオプションを使用するためには、外部コマンド版の`pwd`を明示的に実行する必要があります。
まとめ
`pwd`コマンドは、UNIX系OSにおける基本的なコマンドの一つであり、ユーザーがファイルシステム内の現在位置を把握するために不可欠です。`getcwd(2)`システムコールを利用して実装されており、多くの
シェルで組み込みコマンドとして提供されています。オプション`-L`と`-P`を使い分けることで、論理パスと物理パスの表示を切り替えることができ、より正確な
ディレクトリ情報を得ることができます。
参考資料
以下に、`pwd`コマンドに関する参考リンクを記載します。
pwd(1) - Linux JM Project
pwd(1) - OpenBSD
pwd(1) - HMUGリファレンスマニュアル
pwd(1) - Debianリファレンスマニュアル