Huney

サーバー / Linux

Linuxの絶対パスと相対パスとは?パスの指定方法を初心者向けに解説

Linuxの絶対パスと相対パスの違いを初心者向けに解説します。ルートディレクトリ、カレントディレクトリ、ホームディレクトリ、.、..、~の意味を実際のLinuxコマンドと一緒に学びます。

読了時間:約11分
  • #Linux
  • #絶対パス
  • #相対パス
  • #Linuxコマンド

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の権限管理を学んでいきます。