Linux 講座 / ファイルシステムの理解 - 絶対・相対パスと主要ディレクトリ

Linuxのファイルシステムは/から始まる1つのディレクトリツリーと見なすことができます。ファイルの位置はパスで示され、現在位置を基準に書く相対パスと/から書く絶対パスを区別すると、コマンドがどのファイルに作用するか判断しやすくなります。この講座ではパスの読み方と、よく出会うディレクトリの役割を学びます。

現在位置を変えながらパスを確認する方法は、pwd・cd・lsでディレクトリ探索するで実際に練習できます。

1つのツリーに繋がるファイルシステム

Windowsのドライブ文字と違い、Linuxでは最上位ディレクトリであるルートディレクトリ/の下にファイルやディレクトリが続きます。別のディスクやファイルシステムを接続しても、通常ツリーのどこかのディレクトリに取り付けて使います。この接続をマウントと言います。ツリーの形だけでは、ファイルが実際にどのディスクに保存されているかはわかりません。

/と/rootは異なります。/はファイルツリーの出発点であり、/rootは通常管理者(root)アカウントのホームディレクトリです。一般ユーザーのホームディレクトリは一般的に/home/ユーザー名ですが、アカウント設定によって異なる場所になることもあります。

絶対パスと相対パス

絶対パスは/で始まります。例えば/etc/hostsは現在どこにいても同じ場所を指します。相対パスは現在の作業ディレクトリを基準に解釈されます。現在の場所が/home/learnerであれば、notes/todo.txtは/home/learner/notes/todo.txtを意味します。

表記 意味 例
/ ファイルシステムツリーの出発点 /etc/hosts
. 現在のディレクトリ ./script.sh
.. 上位ディレクトリ ../notes
~ シェルで現在のユーザーのホームディレクトリに展開 ~/notes

.と..は相対パスを構成するディレクトリエントリです。~は、ファイルシステムに実際に存在する名前ではなく、Bashのようなシェルがコマンドを実行する前に展開する表記です。特に'~/notes'のようにシングルクォートで囲むと、~はホームディレクトリに展開されません。

パスでは/を区切り文字として使用し、大文字と小文字を区別します。したがって、Notesとnotesは異なる名前である可能性があります。空白を含むパスは、'project notes'のようにクォートで囲むか、空白をエスケープして1つの引数として渡す必要があります。

主要ディレクトリの役割

以下の表はよく見られる場所の一般的な役割です。ディストリビューションやインストール方法によってはディレクトリが存在しなかったり、別の場所にリンクされている場合があります。また、すべてのファイルが表の説明通りに配置されているわけではありません。

パス 一般的な役割
/home 一般ユーザーのホームディレクトリが置かれる場所
/etc システムとサービスの設定ファイル
/usr ユーザースペースのプログラムと共有データ
/var ログ・キャッシュのように運用中に内容が変わるデータ
/tmp 一時ファイルを置く場所
/dev デバイスを示すファイル
/proc, /sys カーネルとシステム情報を表示する仮想ファイルシステム
/boot ブートに必要なファイルが置かれる場所
/mnt, /media 追加の記憶装置などを接続するときに使う場所

/procと/sysの項目を、普通の文書のように無闇に編集したり削除したりしてはいけません。/tmpに重要な資料を長期間保管することも避けてください。システムのポリシーにより、テンポラリファイルが整理されることがあります。設定を変更する目的であっても、/etcのファイルは意味を確認し、バックアップした上で修正する必要があります。

パスを読む練習

次のパスを左から読んでみてください。/home/learner/projects/report.txtでは、/が出発点、homeとlearnerおよびprojectsは順に通過するディレクトリ、report.txtは最後の項目です。名前にドットが入っているからといって、ファイル形式や存在が確定するわけではありません。

現在の位置が/home/learner/projectsだと仮定すると、../notes.txtは上位ディレクトリである/home/learnerのnotes.txtを指します。このパスが実際に存在するかどうかは別途確認する必要があります。パスを読むこととファイルの存在を確認することは別の作業です。

コマンドを実行する前に、『現在の場所はどこか』、『入力したパスは絶対パスか相対パスか』をまず確認してください。特にファイルを移動したり削除したりするコマンドでは、相対パスを誤って解釈すると意図しない対象に作業することがあります。ターミナルとシェルの入門講座でコマンドの基本構造の読み方を確認できます。

公式ドキュメント

ディレクトリの一般的な配置基準はFilesystem Hierarchy Standard 3.0を参考にしました。実際の構成は使用しているディストリビューションとシステム設定も併せて確認してください。