Linuxのターミナルで作業していると、 「さっきいたディレクトリに戻りたい!」 という場面はとても多いです。
たとえば、
cd /var/www/html
# いろいろ確認した後...
cd /etc/httpd
と移動した後に 「また /var/www/html
に戻りたい」 となったとき、いちいちパスを手で打つのは面倒ですよね。
実はLinuxには、「直前にいたディレクトリに戻る」便利なショートカットがあります。
ディレクトリ移動の基本知識

なぜディレクトリ移動が重要?
効率的な作業
- 長いパスを何度も入力する手間を省く
- 作業の流れを途切れさせない
- タイプミスによるエラーを減らす
よくある作業パターン
- 設定ファイルの編集とテスト
- ログファイルの確認と分析
- ソースコードとドキュメントの行き来
- バックアップ作業での往復移動
現在位置の把握
pwd コマンドで現在位置確認:
pwd
出力例:
/home/user/projects/webapp
どこにいるか分からなくなったときの必須コマンドです。
cd – で1つ前のディレクトリに戻る

基本的な使い方
最もシンプルな前ディレクトリ移動:
cd -
これだけで直前にいたディレクトリに戻ります。
実際の動作例
基本的な往復移動:
# 現在位置確認
pwd
# 出力: /home/user
# ディレクトリ移動
cd /var/www/html
pwd
# 出力: /var/www/html
# 別のディレクトリに移動
cd /etc/httpd
pwd
# 出力: /etc/httpd
# 1つ前のディレクトリに戻る
cd -
# 出力: /var/www/html(自動で表示される)
pwd
# 出力: /var/www/html
cd – の便利な特徴
自動パス表示 cd -
を実行すると、移動先のパスが自動で表示されるため、どこに戻ったか一目で分かります。
連続使用で往復
cd /home/user/projects
cd /var/log
cd - # /home/user/projects に戻る
cd - # /var/log に戻る
cd - # /home/user/projects に戻る
環境変数 OLDPWD の活用 cd -
は実際には環境変数 OLDPWD
を参照しています:
echo $OLDPWD # 前のディレクトリパスを表示
その他の便利なディレクトリ移動テクニック
ホームディレクトリへの移動
引数なしのcd:
cd
チルダを使った明示的な指定:
cd ~
どちらも同じ結果: 現在位置に関係なく、いつでも自分のホームディレクトリに戻れます。
実例:
# どこにいても
cd /usr/local/bin/very/deep/directory
cd # 即座にホームディレクトリ
pwd
# 出力: /home/username
相対パスでの移動
1つ上のディレクトリ:
cd ..
2つ上のディレクトリ:
cd ../..
現在のディレクトリを明示:
cd . # 現在位置で更新(ほとんど使わない)
組み合わせた移動:
cd ../other_directory # 1つ上に上がって other_directory に移動
複雑なパス移動
ルートからの絶対パス:
cd /usr/local/bin
ホームディレクトリからの相対パス:
cd ~/Documents/projects
前のディレクトリからの相対パス:
# 現在: /home/user/projects
cd /var/www
cd - # /home/user/projects に戻る
cd ../Documents # /home/user/Documents に移動
高度なディレクトリ移動テクニック

pushd と popd を使ったスタック移動
ディレクトリスタックの概念 pushd
と popd
を使うと、複数のディレクトリを「スタック」のように管理できます。
pushd の使い方:
# 現在のディレクトリをスタックに保存しつつ移動
pushd /var/log
pushd /etc
pushd /tmp
スタック確認:
dirs # 現在のディレクトリスタックを表示
出力例:
/tmp /etc /var/log /home/user
popd でスタックから戻る:
popd # /etc に戻る
popd # /var/log に戻る
popd # /home/user に戻る
dirs コマンドでスタック管理
スタックの詳細表示:
dirs -v # 番号付きでスタック表示
出力例:
0 /tmp
1 /etc
2 /var/log
3 /home/user
特定の位置に移動:
pushd +2 # スタック位置2番(/var/log)に移動
履歴を活用した移動
cd の履歴確認:
# bash の場合、CDPATH を使った履歴管理
history | grep "cd "
最近のディレクトリに素早く移動:
# ディレクトリ名の一部だけでタブ補完
cd pro<Tab> # projects ディレクトリに展開
実用的な作業パターン

開発作業での活用
ソースコードとログの行き来:
cd ~/projects/webapp/src
# コード編集
cd /var/log/apache2
# ログ確認
cd - # ソースディレクトリに戻る
# デバッグ続行
テストとドキュメント作業:
cd ~/projects/webapp/tests
# テスト実行
cd ../docs
# ドキュメント更新
cd - # テストディレクトリに戻る
システム管理での活用
設定ファイルの編集:
cd /etc/nginx
# 設定ファイル編集
sudo vim nginx.conf
cd /var/log/nginx
# ログ確認
tail -f error.log
cd - # 設定ディレクトリに戻る
# 設定の再確認
バックアップ作業:
cd /home/user/important_data
# バックアップ対象確認
cd /backup/daily
# バックアップ先準備
cd - # データディレクトリに戻る
# バックアップ実行
ファイル操作での活用
ファイルのコピー・移動:
cd ~/Downloads
# ダウンロードファイル確認
cd ~/Documents/work
# 移動先ディレクトリ準備
cd - # Downloads に戻る
mv important_file.pdf - # 前のディレクトリ(work)に移動
エイリアスとカスタマイズ
便利なエイリアス設定
~/.bashrc に追加する便利なエイリアス:
# 基本的な移動エイリアス
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# よく使うディレクトリへのショートカット
alias cdh='cd ~'
alias cdl='cd ~/Downloads'
alias cdd='cd ~/Documents'
alias cdp='cd ~/projects'
# 前のディレクトリに戻るエイリアス(分かりやすく)
alias back='cd -'
alias prev='cd -'
設定の反映:
source ~/.bashrc
関数を使った高度なカスタマイズ
よく使うディレクトリへの素早い移動:
# ~/.bashrc に追加
function cdc() {
cd ~/projects/current-project
}
function cdl() {
cd /var/log
ls -la
}
function cdw() {
cd /var/www/html
pwd
}
ディレクトリ移動履歴の表示:
function cdh() {
echo "Recent directories:"
dirs -v
}
トラブルシューティング

よくある問題と対処法
OLDPWD が設定されていない場合:
cd -
# エラー: bash: cd: OLDPWD not set
対処法:
# 一度別のディレクトリに移動してから使用
cd /tmp
cd ~
cd - # 正常に動作
権限がないディレクトリの場合:
cd /root
# Permission denied
echo $OLDPWD # 前のディレクトリは記録されている
対処法:
# 移動に失敗してもOLDPWDは更新されないため安全
cd - # 問題なく前のディレクトリに戻る
シェル別の動作の違い
bash の場合:
cd -
が標準でサポートOLDPWD
環境変数を自動管理
zsh の場合:
- bash と同様の動作
- より高度なディレクトリ履歴機能
fish シェルの場合:
cd -
の代わりにprevd
コマンドnextd
で進む方向の移動も可能
まとめ
基本コマンドの再確認
1つ前のディレクトリに戻る:
cd -
ホームディレクトリに戻る:
cd
# または
cd ~
現在位置の確認:
pwd
効率的な移動のコツ
基本パターンの習得:
- まず
pwd
で現在位置を確認 - 目的のディレクトリに移動
- 必要に応じて
cd -
で前のディレクトリに戻る
高度なパターンの活用:
pushd
/popd
でスタック管理- エイリアスでよく使う移動をショートカット化
- タブ補完で効率的なパス入力
実用的なメリット
作業効率の向上:
- 長いパスを何度も入力する必要がない
- 作業の流れが途切れない
- タイプミスによるストレスが減る
記憶の負担軽減:
- 複雑なパスを覚える必要がない
- 直前の作業場所に簡単に戻れる
- ディレクトリ構造を意識しすぎる必要がない
安全性の向上:
- 間違ったディレクトリでの作業を防ぐ
- 移動先が自動表示されるため確認しやすい
- エラー時も前の位置に戻りやすい
これらのテクニックを覚えておけば、ターミナルでのディレクトリ移動がもっとスムーズになります。
特に cd -
は毎日使える便利なコマンドなので、ぜひ今日から活用してみてください!
コメント