Linuxを使い始めたとき、まず覚えるべきコマンドが cd(Change Directory)と pwd(Print Working Directory)です。この2つを使いこなせば、ターミナル上で自由にディレクトリを移動できるようになります。
本記事では実際に Ubuntu 24.04 の Docker コンテナで cd と pwd を動かし、基本操作から少し発展的な使い方(cd - や pwd -P)まで実出力つきで解説します。
この記事のポイント
pwdで「今いる場所」を絶対パスで確認できるcd /パスで絶対パス、cd 相対パスで相対パス移動ができるcd -で直前のディレクトリに素早く戻れる($OLDPWDを活用)pwd -Pでシンボリックリンクを解決した物理パスを表示できる- Ubuntu 24.04(bash 5.2.21)で実測・実行確認済み
目次
- 前提環境
- pwd:現在のディレクトリを確認する
- cd:ディレクトリを移動する基本
- cd の便利な使い方(
~・..・-) - pwd -P と pwd -L の違い(シンボリックリンク)
- CDPATH で移動を効率化する
- よくあるエラーと解決策
- まとめ
前提環境
本記事のコマンドは以下の環境で実測しています。
| 項目 | 値 |
|---|---|
| OS | Ubuntu 24.04 LTS(Docker公式イメージ ubuntu:24.04) |
| bash バージョン | 5.2.21(1)-release(実測) |
| pwd の種類 | bash 組み込み + /usr/bin/pwd(外部コマンド)の両方が存在 |
| 実行日 | 2026-06-13 |
注意
本記事のコマンドは Ubuntu 24.04 LTS で検証しています。他のディストリビューションや bash のバージョンによって一部の動作が異なる場合があります。
実行環境を確認するには次のコマンドを使います。
GNU bash, version 5.2.21(1)-release (aarch64-unknown-linux-gnu)
$ type pwd
pwd is a shell builtin
$ which pwd
/usr/bin/pwd
pwd は bash の組み込みコマンド(shell builtin)であると同時に /usr/bin/pwd という外部コマンドとしても存在します。通常は bash 組み込みの方が優先されます。
pwd:現在のディレクトリを確認する
pwd は「Print Working Directory」の略で、現在自分がいるディレクトリの絶対パスを表示するコマンドです。ターミナルを開いた瞬間に「今どこにいるんだろう?」と思ったらまず pwd を打ちましょう。
/root
出力された /root が「今いるディレクトリの絶対パス」です。絶対パスとは、ファイルシステムの最上位(ルート /)から始まるパスのことです。

上の図は実際に ubuntu:24.04 コンテナで cd と pwd を実行した結果です。pwd が常に絶対パスを返しているのが分かります。
cd:ディレクトリを移動する基本
cd(Change Directory)は別のディレクトリに移動するコマンドです。移動先の指定方法には「絶対パス」と「相対パス」の2通りあります。
手順1:絶対パスで移動する
絶対パスは /(ルート)から始まるパスです。現在地がどこであっても確実に目的のディレクトリに移動できます。
$ pwd
/tmp
$ cd /usr/local/bin
$ pwd
/usr/local/bin
手順2:相対パスで移動する
相対パスは現在地を基点にしたパスです。/ から始めずに書きます。
/usr
$ cd local
$ pwd
/usr/local
$ cd bin
$ pwd
/usr/local/bin
現在地が /usr のとき、cd local と打つと /usr/local に移動します。cd /usr/local と打つのと結果は同じですが、相対パスの方が入力が短く済みます。
cd の便利な使い方(~・..・-)
cd には引数なし・~・..・- という特殊な書き方があり、これを知っているだけで操作速度が格段に上がります。実際に ubuntu:24.04 で確認した結果を見てみましょう。
① cd だけでホームに戻る
cd を引数なしで打つと、環境変数 $HOME が示すホームディレクトリに戻ります。どんなに深い階層にいても一発でホームに帰れます。
/var/log/apt
$ cd
$ pwd
/root
cd ~ と同じ動作です。$HOME の値(一般ユーザーなら /home/ユーザー名、root なら /root)に移動します。
② cd .. で1つ上の階層へ
..(ドット2つ)は「1つ上のディレクトリ」を意味します。
$ pwd
/usr/local
$ cd ../..
$ pwd
/usr
cd ../.. のように組み合わせて、一度に2階層上に移動することもできます。
③ cd – で直前のディレクトリに戻る
cd - は直前にいたディレクトリに戻る、正直これを知らないと損です。2つのディレクトリを行き来するときに非常に便利です。
$ cd /var/log
$ pwd
/var/log
$ cd –
/tmp
$ pwd
/tmp
$ echo $OLDPWD
/var/log

cd - が使えるのは、bash が直前のディレクトリを $OLDPWD という環境変数に自動保存しているからです。cd - を実行するとそのパスが表示され、移動します。ubuntu:24.04(bash 5.2.21)で実測済みです。
pwd -P と pwd -L の違い(シンボリックリンク)
シンボリックリンク経由でディレクトリに入っている場合、pwd の表示が2種類あります。これは少し上級ですが、VPS でサーバーを運用すると出てくるので把握しておきましょう。
| オプション | 動作 | 表示例 |
|---|---|---|
pwd(デフォルト = -L) |
論理パス(シンボリックリンクのまま表示) | /tmp/link_dir |
pwd -P |
物理パス(シンボリックリンクを解決して実体を表示) | /tmp/real_dir |
実際に ubuntu:24.04 でシンボリックリンクを作成して確認した結果がこちらです。
$ ln -s /tmp/real_dir /tmp/link_dir
$ cd /tmp/link_dir
$ pwd
/tmp/link_dir
$ pwd -P
/tmp/real_dir

pwd -L(デフォルト)はシンボリックリンクのパスをそのまま返し、pwd -P は実体のある物理パスを返します。スクリプトで実際のファイルシステムパスが必要な場面では pwd -P を使うのが正確です。

CDPATH で移動を効率化する
あまり知られていませんが、CDPATH という環境変数を設定すると、短いディレクトリ名だけで任意のパス配下に移動できます。
$ export CDPATH=/home/user
$ cd /tmp
$ cd projects
/home/user/projects
$ pwd
/home/user/projects
CDPATH=/home/user を設定すると、/tmp にいても cd projects と打つだけで /home/user/projects に移動できます。頻繁に移動するディレクトリがある場合は ~/.bashrc に書いておくと便利です。
注意
CDPATH を設定すると、意図せず別の場所に移動してしまうことがあります。設定する場合は、よく使うパスだけを追加するようにしましょう。
よくあるエラーと解決策
① No such file or directory
一番よく見るエラーです。ディレクトリが存在しないか、パスのスペルが間違っています。
bash: cd: /tmp/not_exist: No such file or directory
解決策: ls /tmp/ でディレクトリの存在を確認してから移動するか、mkdir -p /tmp/not_exist でディレクトリを作成してください。
② Not a directory
ファイル(ディレクトリでないもの)に cd しようとしたときに出ます。
$ cd /tmp/testfile.txt
bash: cd: /tmp/testfile.txt: Not a directory
解決策: ls -la /tmp/ で対象がファイルかディレクトリかを確認してください(- で始まる行がファイル、d で始まる行がディレクトリです)。
③ Permission denied
移動先のディレクトリに読み取り権限がない場合に出ます。
bash: cd: /root/restricted: Permission denied
解決策: ls -la でパーミッションを確認し、必要なら sudo chmod +x /ディレクトリ で実行権限を付与するか、sudo cd ではなく sudo -i で root シェルに切り替えてから移動してください(cd は bash 組み込みのため sudo cd は動きません)。
まとめ
Ubuntu における cd と pwd の基本操作をまとめます。
| コマンド | 動作 | 使用例 |
|---|---|---|
pwd |
現在のディレクトリを絶対パスで表示 | pwd → /home/user |
pwd -P |
シンボリックリンクを解決した物理パスを表示 | pwd -P → /tmp/real_dir |
cd /パス |
絶対パスで移動 | cd /var/log |
cd 相対パス |
現在地から相対パスで移動 | cd ../bin |
cd または cd ~ |
ホームディレクトリに移動($HOME) |
cd |
cd .. |
1つ上のディレクトリに移動 | cd .. |
cd - |
直前のディレクトリに戻る($OLDPWD を利用) |
cd - |
ubuntu:24.04(bash 5.2.21)での実測を通じて確認した通り、cd と pwd は Linux のディレクトリナビゲーションの核心です。特に cd - と pwd -P は知っているだけで作業効率が上がるので、ぜひ使ってみてください。
ディレクトリ移動ができたら、次はファイル一覧の確認(ls)やファイル検索(find / grep)にも挑戦してみましょう。
- → Ubuntuのlsコマンド完全ガイド【オプション・隠しファイル表示】
- → Ubuntuのgrepとfindコマンドでファイル・テキストを検索する方法
VPS を借りてサーバーを運用したい方は、こちらの記事も参考にしてください。
VPS 実測ベンチ比較記事を読む →


コメント