pwd コマンド
現在の作業ディレクトリの完全なパス名を表示します。
概要
pwd
コマンドは、現在いるディレクトリの絶対パスを表示します。これにより、ファイルシステム階層内での自分の位置を把握できます。特にディレクトリ間を移動する際や、現在の場所を参照する必要があるスクリプトを作成する際に役立ちます。
オプション
-L, --logical
論理的な現在の作業ディレクトリを表示します。パス内のシンボリックリンクは遭遇した時点で解決されます(デフォルトの動作)。
$ pwd -L
/home/user/projects
-P, --physical
物理的な現在の作業ディレクトリを表示します。すべてのシンボリックリンクが解決されます。
$ pwd -P
/var/www/html/projects
使用例
基本的な使い方
$ pwd
/home/user/documents
スクリプト内での pwd の使用
$ echo "Current directory: $(pwd)"
Current directory: /home/user/documents
論理パスと物理パスの比較
$ cd /home/user/symlink_to_projects
$ pwd -L
/home/user/symlink_to_projects
$ pwd -P
/home/user/actual/projects
ヒント:
シェルスクリプトでの使用
現在のディレクトリを変数に格納して、後でスクリプト内で参照できます:
CURRENT_DIR=$(pwd)
cd /some/other/directory
# 何か作業をする
cd "$CURRENT_DIR" # 元のディレクトリに戻る
パスのハードコーディングを避ける
スクリプト内でパスをハードコーディングする代わりに、pwd
を使用することで、異なるシステム間でスクリプトの移植性を高めることができます。
シンボリックリンクのトラブルシューティング
シンボリックリンクを扱う場合、pwd -P
を使用してファイルが実際にディスク上のどこに保存されているかを確認できます。これにより、権限の問題のトラブルシューティングに役立ちます。
よくある質問
Q1. pwd
と echo $PWD
の違いは何ですか?
A. 通常は同じ結果を表示しますが、$PWD
は現在のディレクトリパスを格納する環境変数です。pwd
は現在のディレクトリを積極的に判断するコマンドです。
Q2. なぜ pwd -P
と pwd -L
が異なる結果を表示することがありますか?
A. 現在のディレクトリにシンボリックリンクが含まれている場合に違いが生じます。-L
はシンボリックリンクをそのままにしたパスを表示し、-P
はすべてのシンボリックリンクを解決して実際の物理パスを表示します。
Q3. pwd
はすべてのUnix系システムで同じように動作しますか?
A. 基本的な機能は同じですが、GNU/Linux、macOS、その他のUnixバリアントの間で利用可能なオプションに若干の違いがある場合があります。
参考文献
https://www.gnu.org/software/coreutils/manual/html_node/pwd-invocation.html
改訂履歴
- 2025/05/05 初版