Linuxの絶対パスと相対パスとは?パスの指定方法を初心者向けに解説
Linuxでファイルやディレクトリを操作するときに欠かせないのが、**パス(Path)**という考え方です。
Linuxコマンドを使っていると、
cd /home/user01/Documents
や、
cd Documents
といった指定をよく目にします。
どちらもディレクトリの場所を指定していますが、指定方法が異なります。
今回はLinuxの基本となる絶対パスと相対パスについて、実際にコマンドを使いながら学んでいきます。
パスとは?
パスとは、簡単にいうと、
ファイルやディレクトリがどこにあるのかを表す住所
です。
Linuxでは、ファイルやディレクトリが階層構造で管理されています。
たとえば、次のような構成があるとします。
/
├── etc
├── home
│ ├── user01
│ │ ├── Documents
│ │ ├── Downloads
│ │ └── linux-practice
│ └── user02
├── tmp
└── var
└── log
Documentsディレクトリの場所は、
/home/user01/Documents
と表せます。
Linuxでは、このようにディレクトリ名を/で区切って場所を表現します。
まず覚えたい3つのディレクトリ
絶対パスと相対パスを理解する前に、Linuxでよく登場する3つの言葉を確認しておきましょう。
ルートディレクトリ
Linuxのディレクトリ構造の一番上にあるのが**ルートディレクトリ(Root Directory)**です。
/
で表します。
/
├── etc
├── home
├── tmp
├── usr
└── var
Linuxでは、すべてのファイルやディレクトリがこの/を起点とした階層構造の中にあります。
WindowsのC:\などとは構造の考え方が少し異なります。
カレントディレクトリ
**カレントディレクトリ(Current Directory)**とは、現在自分がいるディレクトリです。
現在地はpwdコマンドで確認できます。
pwd
たとえば、
/home/user01
と表示された場合、現在のカレントディレクトリは/home/user01です。
Linuxで相対パスを利用するときは、このカレントディレクトリが基準になります。
ホームディレクトリ
**ホームディレクトリ(Home Directory)**とは、ユーザーごとに用意される作業場所です。
たとえば、
/home/user01
/home/user02
のような形です。
user01でログインしている場合、
/home/user01
がホームディレクトリになる構成が一般的です。
ホームディレクトリは~を使って表すこともできます。
~
絶対パスとは?
**絶対パス(Absolute Path)**とは、ルートディレクトリ/を起点として、目的のファイルやディレクトリまでの場所をすべて指定する方法です。
たとえば、
/home/user01/Documents
は絶対パスです。
階層構造で見ると、
/
└── home
└── user01
└── Documents
となります。
コマンドでは、
cd /home/user01/Documents
と指定できます。
絶対パスの特徴は、現在どこにいても同じ場所を指定できることです。
たとえば現在地が、
/var/log
だったとしても、
cd /home/user01/Documents
と入力すればDocumentsへ移動できます。
絶対パスの見分け方
基本的には、
先頭が/から始まっている
ことに注目します。
/home/user01/Documents
/etc/hosts
/var/log
/tmp
これらはすべてルートディレクトリから場所を指定しているため、絶対パスです。
相対パスとは?
**相対パス(Relative Path)**とは、現在いるカレントディレクトリを基準として場所を指定する方法です。
たとえば現在地が、
/home/user01
だったとします。
その中に、
/home/user01
├── Documents
├── Downloads
└── linux-practice
というディレクトリがある場合、
cd Documents
だけでDocumentsへ移動できます。
絶対パスなら、
cd /home/user01/Documents
です。
相対パスなら、
cd Documents
です。
どちらも同じ場所へ移動しています。
違うのはどこを基準として場所を指定しているかです。
絶対パス
↓
ルートディレクトリ / が基準
相対パス
↓
現在いるディレクトリが基準
絶対パスと相対パスを比較してみよう
現在地が、
/home/user01
だったとします。
Documentsへ移動する場合、
絶対パス
cd /home/user01/Documents
相対パス
cd Documents
となります。
次に現在地が、
/tmp
だった場合を考えてみます。
絶対パスなら、
cd /home/user01/Documents
で移動できます。
しかし、
cd Documents
では、/tmpの中にあるDocumentsを探すことになります。
つまり相対パスは、現在地によって意味が変わるという特徴があります。
「.」は現在地を表す
Linuxでは、
.
が現在のディレクトリを表します。
たとえば現在地が、
/home/user01/linux-practice
で、その中に、
sample.sh
がある場合、
./sample.sh
は、
現在いるディレクトリにあるsample.sh
という意味になります。
/home/user01/linux-practice
│
├── sample.sh
│
└── .
↑
現在地
Linuxでは今後、プログラムやスクリプトを実行するときなどに./という表記を目にすることがあります。
「..」は1つ上を表す
..
は1つ上のディレクトリを表します。
たとえば現在地が、
/home/user01/Documents
だったとします。
cd ..
を実行すると、
/home/user01
へ移動します。
イメージすると、
/home/user01
↑
│
│ cd ..
│
/home/user01/Documents
となります。
2階層上へ移動したい場合は、
cd ../..
と指定できます。
たとえば、
/home/user01/Documents
から実行すると、
/home
へ移動します。
「~」はホームディレクトリを表す
~は、現在ログインしているユーザーのホームディレクトリを表すためによく利用されます。
たとえばホームディレクトリが、
/home/user01
の場合、
cd ~
でホームディレクトリへ移動できます。
また、
cd ~/Documents
と指定すると、
/home/user01/Documents
へ移動できます。
そのため、
cd /home/user01/Documents
とすべて入力しなくても、
cd ~/Documents
と短く指定できます。
「/」と「~」は別物
初心者のうちは/と~を混同しやすいので注意しましょう。
/
はLinux全体の一番上にあるルートディレクトリです。
一方、
~
は現在ログインしているユーザーのホームディレクトリを表します。
たとえば、
/
└── home
└── user01
↑
~
という関係になります。
パスはcd以外でも使う
パスはディレクトリを移動するcdだけで使うものではありません。
たとえばファイルをコピーするときにも使います。
cp sample.txt /tmp/
これは、
sample.txt
↓
/tmp/
へコピーするという意味です。
相対パスを使って、
cp sample.txt ../
とすれば、現在地から1つ上のディレクトリへコピーできます。
ファイルを移動するときも同じです。
mv sample.txt /tmp/
ファイルの内容を確認するときにも、
cat /etc/hosts
のようにパスを指定します。
つまり、Linuxのさまざまなコマンドでパスの考え方を利用します。
よく使うパス表現まとめ
| 表記 | 意味 |
|---|---|
/ |
ルートディレクトリ |
. |
現在のディレクトリ |
.. |
1つ上のディレクトリ |
~ |
現在のユーザーのホームディレクトリ |
/home/user01 |
絶対パスの例 |
Documents/sample.txt |
相対パスの例 |
../sample.txt |
1つ上を基準にした相対パス |
~/Documents |
ホームディレクトリを利用した指定 |
実際に操作してみよう
最後に、実際にパスを使って移動してみましょう。
まずホームディレクトリへ移動します。
cd ~
現在地を確認します。
pwd
練習用のディレクトリを作ります。
mkdir -p linux-practice/path-test
相対パスを使って移動します。
cd linux-practice/path-test
現在地を確認します。
pwd
次に1つ上へ移動します。
cd ..
もう一度確認します。
pwd
今度は絶対パスを使って/tmpへ移動します。
cd /tmp
確認します。
pwd
最後にホームディレクトリへ戻ります。
cd ~
この練習では、
~
↓
linux-practice/path-test
↓
..
↓
/tmp
↓
~
と移動しています。
実際にpwdを実行しながら操作すると、パスの仕組みを理解しやすくなります。
🍯 はちみつメモ
パスはLinux上の住所!
絶対パスは、
「一番上の
/から目的地まで全部指定する」相対パスは、
「今いる場所から目的地を指定する」
と覚えておきましょう。
そして迷ったら、
pwdで現在地を確認すればOKです。
まとめ
- パスはファイルやディレクトリの場所を表す
- Linuxのディレクトリ構造は
/を起点としている /はルートディレクトリ- カレントディレクトリは現在いるディレクトリ
- ホームディレクトリはユーザーごとに用意される作業場所
- 絶対パスは
/を基準に場所を指定する - 相対パスは現在地を基準に場所を指定する
.は現在のディレクトリ..は1つ上のディレクトリ~は現在のユーザーのホームディレクトリを表すためによく使われるpwdを使えば現在地を確認できる- パスは
cdだけでなくcp、mv、catなどさまざまなコマンドで利用する
絶対パスと相対パスは、Linuxを操作するときに何度も使う基本的な考え方です。
まずは、
「絶対パスは / から、相対パスは現在地から」
という違いを押さえておきましょう。
次におすすめ
次は**「Linuxのユーザー・グループ・パーミッション」**について学びます。
ファイルには「誰が読み取れるのか」「誰が書き換えられるのか」といった権限を設定できます。
useradd、groupadd、chmod、chownなどを実際に使いながら、Linuxの権限管理を学んでいきます。