【実践Linux7】絶対パス・相対パスとは
現在いるディレクトリ(カレントディレクトリ)が/usr/localだとします。
このとき、/usr/bin/somethingのファイルを指定するには、以下の2通りがあります。
- /usr/bin/something
- ../bin/something
上記1は最上位のディレクトリ(ルートディレクトリ)からディレクトリ・ファイル名を指定する方法です。対して2では自分が現在いるディレクトリから見て、ディレクトリ・ファイル名を指定しています。
1の指定方法を絶対パスといい、2の指定方法を相対パスといいます。
絶対パスはどのディレクトリにいても、同じ方法で特定のディレクトリ・ファイルを指定することができます。
一方で相対パスは同じディレクトリ・ファイルを指定する場合でも、自分の現在の位置が変わればパスも変わるので、常に自分の位置からみた特定のディレクトリ・ファイルの位置について考慮する必要があります。
絶対パスのメリットは上記でも述べた通り、自分の位置に関係なく、常に同じ方法で指定できることですが、一方でルートディレクトリから指定するので場合によっては記述が非常に長くなってしまうというデメリットもあります。
対して相対パスのメリットは指定したいディレクトリやファイルが自分の位置から近い場合、絶対パスよりも短い記述で済むということです。
さまざまなディレクトリへの移動
実際にディレクトリからディレクトリへの移動を絶対パスと相対パスを使って行ってみます。
ここではpenguinユーザがいると仮定して、コマンドを実行します。
$ cd ~
$ pwd
/home/penguin
$ cd ..
$ pwd
/home
$ cd /usr
$ pwd
/usr
$ cd ~
$ pwd
/home/penguin
$ cd ../../
$ pwd
/
[解説]
一行目のcd ~ではpenguinユーザのホームディレクトリである/home/penguinディレクトリに移動しています。
cd ..は相対パスで自分より一つ上のディレクトリ(親ディレクトリ)を指定して移動しています。
cd /usrは絶対パスでルートディレクトリ直下の/usrディレクトリに移動しています。
cd ../../は相対パスで現在いる/penguinディレクトリの一つ上のさらに一つ上のディレクトリに移動しています。
まとめ
いかがでしたか?今回は絶対パスと相対パスについて解説しました。
絶対パスはルートディレクトリから指定する方法、相対パスは自分が現在いる位置からみて指定する方法です。
それぞれにメリット・デメリットがあるので、状況に応じて使い分けましょう。