絶対パス(absolute path)と相対パス(relative path)入門 - . と .. と ~ を理解する
パスの読み方でつまずいていませんか?
「cd ../logs って書いてあるけど、この .. って何?」「~/Documents の ~ ってどこ?」——コマンドを学び始めると、こういう記号付きの「住所」に必ず出会う。これが パス(path) だ。
この記事では、絶対パス(absolute path)と相対パス(relative path)の違い、そして . .. ~ という3つの記号の意味を、ライナとライニー先輩の会話でやさしく整理していく。読み終わるころには、どんなパスを見ても「今どこを指しているか」が分かるようになる。
この記事でわかること
- 「パス」がファイルやフォルダの住所であること
- 絶対パス(
/から始まる)と相対パス(現在地から辿る)の違い .(今いる場所)/..(1つ上)/~(ホーム)の意味- 同じ場所を2通りの書き方で指せること
- 迷子になったときに
pwdで現在地を確認するコツ
1. そもそもパスって何?
結論: パスはファイルやフォルダの「住所」。どのフォルダをたどればそこに着くかを、
/で区切って書いたもの。
/home/lina/memo.txt みたいなやつ、いつも何を表してるのか分からなくて…/home/lina/memo.txt なら、「home フォルダの中の lina フォルダの中にある memo.txt」っていう意味。/(スラッシュ)が区切り文字で、フォルダを1段ずつ降りていくイメージだね。パス=ファイルへの道順
Linux ではすべてのファイル・フォルダが /(ルート)を頂点とした1本の木構造に並んでいる。パスは、その木のどの枝をたどればお目当てのファイルに着くかを書いた「道順」だ。木構造そのものは ディレクトリ構造の全体像 で詳しく解説している。
2. 絶対パスとは?
結論: 絶対パスは必ず
/(ルート)から始まる、どこから見ても変わらない住所。「東京都から書いた完全な住所」と同じ。
/ から始まるのが特徴だよ。/ は木のてっぺん「ルートディレクトリ」を表す。絶対パスは、そのてっぺんから目的地までを省略せず全部書く。だから、自分が今どこにいても同じ場所を指せるんだ。/etc/hosts は、リナがどのフォルダにいても /etc/hosts のまま。郵便で言えば「東京都渋谷区...」と都道府県から書いた完全な住所だね。cd /etc pwd
/etc
/etc のように / で始まるパスを指定すると、現在地に関係なく必ずその場所へ移動できる。
絶対パスの目印は先頭の /
/(ルート)から書き始める- 現在地がどこでも結果は同じ
- 設定ファイルやスクリプトなど「確実にこの場所」と指定したいときに向く
3. 相対パスとは?
結論: 相対パスは「今いる場所」を起点にした住所。
/で始まらず、現在地が変わると指す先も変わる。
/ から始まらない。「今いる場所」を起点にして道順を書くんだ。/home/lina にいるとき、cd Documents と打つと /home/lina/Documents に移動する。「ここから見て Documents の中へ」って意味だね。cd Documents を打ったら…?/var にいるなら /var/Documents を探しにいく。これが「相対」って呼ばれる理由。自分の立ち位置によって指す先が相対的に変わるんだ。pwd
/home/lina
cd Documents pwd
/home/lina/Documents
相対パスは「今どこにいるか」で結果が変わる
同じ cd Documents でも、現在地(カレントディレクトリ)が違えば移動先も変わる。コマンドが思った通りに動かないときは、まず pwd で現在地を確認するクセをつけよう。
4. . と .. と ~ の意味は?
結論:
.は「今いる場所」、..は「1つ上の階層」、~は「自分のホームディレクトリ」を表す特別な記号。
. とか .. とか ~ って結局なんなんですか? ずっと謎で….(ドット1つ)は「今いる場所そのもの」。..(ドット2つ)は「1つ上の階層」。そして ~(チルダ)は「自分のホームディレクトリ」を表す近道だよ。| 記号 | 読み方 | 意味 | 例 |
|---|---|---|---|
. |
ドット / カレント | 今いる場所(カレント) | ./script.sh(ここのスクリプト) |
.. |
ドットドット | 1つ上の階層 | cd ..(親フォルダへ) |
~ |
チルダ | 自分のホームディレクトリ | cd ~(ホームへ一発移動) |
.. で1つ上に戻る
.. がいちばん見かける気がします。/home/lina/Documents にいるときに cd .. すると、1つ上の /home/lina に戻る。さらに cd .. すれば /home だね。pwd
/home/lina/Documents
cd .. pwd
/home/lina
.. は組み合わせも可能だ。cd ../../etc なら「2つ上に戻ってから etc に入る」という意味になる。
~ でホームに一発で帰る
~ はどんなときに便利なんですか?cd ~ だけで自分のホームディレクトリ(/home/lina など)に一発で戻れる。深いフォルダで迷子になったときの「帰宅ボタン」みたいなものだね。cd を引数なしで打っても同じ効果だよ。cd ~ pwd
/home/lina
~/Documents のように書けば「ホームの中の Documents」を、今いる場所に関係なく指せる。
. はいつ使うの?
. は普段あまり打たないが、スクリプトを実行するときに ./script.sh という形でよく登場する。これは「今いるフォルダにある script.sh」という意味。. を付けないと「コマンドの置き場所」から探されてしまい見つからないことがあるため、自作スクリプトの実行では ./ を付けるのが定番だ。
5. 絶対パスと相対パス、どう使い分ける?
結論: 確実さ重視なら絶対パス、近場へサッと移動するなら相対パス。同じ場所を両方で書けることも多い。
/home/lina にいるとき、/home/lina/Documents(絶対)も Documents(相対)も、行き先は同じ /home/lina/Documents。短く書けるのが相対パスの強みだね。同じ移動を2通りで書いた例を見てみよう(現在地が /home/lina の場合)。
cd /home/lina/Documents
cd Documents
どちらも結果は同じ /home/lina/Documents への移動だ。
使い分けのめやす
- 絶対パス: 設定ファイル / スクリプト / 別の遠い場所を「確実に」指したいとき
- 相対パス: すぐ隣・1つ上など「近場」をサッと指したいとき
- 迷ったら絶対パスのほうが事故りにくい(現在地に左右されないため)
6. 迷子になったらどうする?
結論:
pwdで現在地を確認するのが基本。相対パスがうまく動かないときは、まず今どこにいるかを疑う。
cd したら「そんなディレクトリないよ」って怒られました…pwd。pwd で現在地を確認して、そこから目的地までの道順を考え直すといいよ。pwd
/var/log
「Documents がない」と言われたら、pwd の結果を見て「あ、今 /var/log にいるのか。じゃあ cd ~/Documents にしよう」と修正できる。ls で今いる場所の中身を一覧して、次に進めるフォルダを確認するのも有効だ。
ブラウザ上で実際にパス移動を練習できる。Penguin Gym Linux のターミナル で cd と pwd を何度も打って、現在地が変わる感覚を体で覚えよう。手を動かすのが上達の近道だ。
まとめ
- パスはファイル・フォルダの「住所」。
/で区切って道順を書く - 絶対パス は
/(ルート)から始まり、現在地に関係なく同じ場所を指す - 相対パス は
/で始まらず、今いる場所(カレントディレクトリ)が基準になる .は今いる場所、..は1つ上、~は自分のホームディレクトリ- 相対パスでつまずいたら、まず
pwdで現在地を確認する