ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
cd コマンドとは
cd はシェルのカレントディレクトリ(現在の作業位置)を変更するコマンドです。change directory の略で、bash / zsh / sh いずれにも組み込みコマンドとして用意されています。外部コマンドではないため which cd しても見つかりません。
基本構文
cd [オプション] [移動先]
使い方バリエーション
| コマンド | 動作 |
|---|---|
cd /etc | 絶対パスで /etc に移動 |
cd src | カレント直下の src に移動(相対パス) |
cd .. | 親ディレクトリに移動 |
cd ../.. | 2 階層上に移動 |
cd | ホームディレクトリ ($HOME) に戻る |
cd ~ | 同上(ホーム) |
cd ~user | user のホームディレクトリに移動 |
cd - | 直前のディレクトリに戻る |
絶対パスと相対パス
移動先の指定には 2 種類あります。
| 種別 | 書き方 | 例 |
|---|---|---|
| 絶対パス | / から始まる | cd /var/log |
| 相対パス | カレントからの相対位置 | cd ../config |
# /home/user にいるとき
cd /var/log # → /var/log(絶対)
cd projects/cwiki # → /home/user/projects/cwiki(相対)
cd ../../tmp # → /tmp(相対、2階層上 + tmp)
便利な特殊記号
| 記号 | 意味 |
|---|---|
. | カレントディレクトリ |
.. | 親ディレクトリ |
~ | 自分のホームディレクトリ ($HOME) |
~user | 指定ユーザのホーム |
- | 直前にいたディレクトリ ($OLDPWD) |
cd - で前のディレクトリに戻る
cd - は直前にいたディレクトリに戻る非常に便利な機能です。深い階層と元の場所を行き来したいときに重宝します。
$ pwd
/home/user
$ cd /var/log/nginx
$ pwd
/var/log/nginx
$ cd -
/home/user
$ pwd
/home/user
シンボリックリンクの扱い(-P / -L)
シンボリックリンクを介して移動する場合、見た目のパスと実体のパスが食い違うことがあります。-L(デフォルト)はリンク先のパスをそのまま使い、-P は実体に解決します。
$ ln -s /var/log /tmp/link
$ cd /tmp/link
$ pwd # /tmp/link(見た目)
$ pwd -P # /var/log(実体)
$ cd -P /tmp/link
$ pwd # /var/log
スクリプトで安定したパスが欲しいときは cd -P を使うのが安全です。
移動できないときの代表的なエラー
| エラー | 原因 |
|---|---|
| No such file or directory | 指定したパスが存在しない(スペルミス・大文字小文字違い) |
| Not a directory | 指定先がファイルになっている |
| Permission denied | そのディレクトリへの実行(x)権限がない |
pushd / popd でスタック管理
頻繁にディレクトリを行き来する場合、pushd / popd でスタックに積みながら移動すると効率的です。
pushd /var/log # スタックに積みながら移動
pushd /etc
dirs # スタック内容を表示
popd # 直前の場所に戻る
CDPATH で「ジャンプ先」を設定する
環境変数 CDPATH に検索パスを設定しておくと、現在地に関係なく登録ディレクトリ配下にジャンプできます。PATH の cd 版と考えると分かりやすいです。
export CDPATH=".:$HOME:/var/log:/etc"
cd nginx # /var/log/nginx に飛べる(カレントになくても)
cd projects # $HOME/projects に飛べる
シェル設定ファイル (~/.bashrc / ~/.zshrc) に書いておくとログイン時から有効になります。スクリプト内では予期せぬ移動を引き起こす場合があるので対話シェルだけに絞るのが安全です。
環境変数 PWD / OLDPWD
シェルは現在のディレクトリを $PWD、直前のディレクトリを $OLDPWD として保持しています。スクリプトから現在地を取りたい時は pwd コマンドか $PWD を使います。
echo $PWD # /home/user/projects
echo $OLDPWD # 直前にいた場所
# スクリプトで「スクリプトのある場所」に移動する典型イディオム
cd "$(dirname "$0")"
スクリプト内で使う注意点
シェルスクリプトの中で cd に失敗してもそのまま処理が続いてしまうと、意図しない場所でファイル削除などの事故につながります。cd の後ろに || でエラーチェックを付けるのが定石です。
#!/bin/bash
set -e # エラーで即終了
cd /var/www/html || { echo "cd failed"; exit 1; }
rm -rf cache/*
もう一つの定番が サブシェル内 cd です。(...) で囲むとその中だけ移動するので、スクリプト本体のカレントを汚しません。
# サブシェルで一時的に移動して作業
(
cd /tmp/work
tar czf archive.tgz *.log
)
# ここでは元のカレントに戻っている
Windows コマンドプロンプトとの違い
Windows の cmd.exe にも cd はありますが、Linux とは挙動が少し違います。Windows / WSL を行き来する人は混乱しがちなので押さえておきます。
| 挙動 | Linux (bash) | Windows (cmd) |
|---|---|---|
引数なし cd | ホームに戻る | 現在のディレクトリを表示 |
| ドライブを跨いだ移動 | 該当なし | cd だけでは不可。cd /d または D: など |
| パス区切り | スラッシュ / | バックスラッシュ \(スラッシュも可) |
| 環境変数 OLDPWD | あり (cd -) | なし |
PowerShell では Set-Location が正式名で、cd はそのエイリアスです。動作は bash に近く、cd - も利きます。
関連
- コマンド一覧 — 親カテゴリ
- Linux — OS トップ
- pwd — 現在のディレクトリを表示
- ls — ディレクトリ内のファイル一覧
- pushd / popd / dirs — ディレクトリスタック
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- HTML a要素の使い方|href・target・rel noopenerのセキュリティ 2026-09-07 07:45:13
- Laravel 記事一覧55件|環境構築・ルーティング・DB・エラー対処 2026-09-07 07:45:13
- Javaの定数 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Spring Framework 記事一覧31件|DI・設定・例外の対処 2026-09-07 07:45:13
- SQLとは|DDL・DMLとリレーショナルデータベース操作の基本 2026-09-07 07:45:13
- NetBeansでTomcatを起動する手順|サーバ登録・ポート・トラブル対処 2026-09-07 07:45:13
- Oracle DROP USERでユーザー削除|CASCADE・接続中ユーザーの対処 2026-09-07 07:45:13
- hostnameコマンドの使い方|Windows・Linux・macOSでホスト名確認 2026-09-07 07:45:13
- HTML video要素の使い方|source・自動再生・muted・playsinline 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?