絶対相対パスとディレクトリ操作の基本解説

2025/01/13
Cover Image for 絶対相対パスとディレクトリ操作の基本解説

ディレクトリ操作の基本

ディレクトリは、ファイルシステムにおける基本的な単位であり、ファイルや他のディレクトリを整理・管理するための構造です。

「.」と「..」の意味

ディレクトリ操作を学ぶ際に重要な概念として、「.」と「..」という特殊な操作があります。

  • 「.」(カレントディレクトリ)
    現在作業中のディレクトリを表します。たとえば、./example.txt は現在のディレクトリ内にある example.txt を指します。

  • 「..」(親ディレクトリ)
    一つ上の階層、つまり親ディレクトリを表します。たとえば、../example.txt は現在のディレクトリの親ディレクトリにある example.txt を指します。

これらはコマンドラインやスクリプトで頻繁に使われます。以下の例を見てみましょう。

# 現在のディレクトリを表示
$ pwd
/home/user/documents
 
# 「..」を使って親ディレクトリへ移動
$ cd ..
$ pwd
/home/user

相対パスと絶対パス

ファイルやディレクトリを指定する際に、相対パス絶対パスの 2 種類の指定方法があります。それぞれの特徴を理解することは、ファイルシステムを扱う上で重要です。

絶対パス

絶対パスは、ルートディレクトリ(UNIX 系 OS では「/」、Windows では「C:\」など)から始まる、ファイルやディレクトリへの完全なパスです。
絶対パスは、どの作業ディレクトリにいても一意に対象を指定できます。

使えないコマンドの場合、"./"をつけることで実行することができます。

例:

  • UNIX 系: /home/user/documents/example.txt
  • Windows: C:\Users\User\Documents\example.txt

相対パス

相対パスは、現在の作業ディレクトリを基準にしたパスです。短く書けるのが利点ですが、作業ディレクトリによって結果が変わる可能性があります。

例:

  • 現在のディレクトリが /home/user/documents の場合:
    • example.txt/home/user/documents/example.txt を指す
    • ../example.txt/home/user/example.txt を指す

Python での相対パスと絶対パスの操作

Python を使ってパスを扱う際には、os モジュールや pathlib モジュールを使用します。

現在のディレクトリを基準に相対パスを絶対パスに変換

import os
 
# 相対パスを絶対パスに変換
relative_path = './example_dir'
absolute_path = os.path.abspath(relative_path)
print(f"絶対パス: {absolute_path}")

pathlib を使用する例

pathlib は、Python 3.4 以降で推奨されるパス操作モジュールです。

from pathlib import Path
 
# 相対パスと絶対パス
relative_path = Path('./example_dir')
absolute_path = relative_path.resolve()
print(f"相対パス: {relative_path}")
print(f"絶対パス: {absolute_path}")

おわりに

Linux や CUI などを学ぶ際にまず障壁となるところだと思いますが、慣れてしまえばとても簡単です。