ディレクトリ操作の基本
ディレクトリは、ファイルシステムにおける基本的な単位であり、ファイルや他のディレクトリを整理・管理するための構造です。
「.」と「..」の意味
ディレクトリ操作を学ぶ際に重要な概念として、「.」と「..」という特殊な操作があります。
-
「.」(カレントディレクトリ)
現在作業中のディレクトリを表します。たとえば、./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 などを学ぶ際にまず障壁となるところだと思いますが、慣れてしまえばとても簡単です。