1.Linuxのファイルとは
Linuxにおける「ファイル」とはデータを保存する単位であり、テキスト以外に画像や音声等のすべてのデータを含んだ表現。
2.Linuxのファイルの構造
Linuxのファイルは下記3要素で構成されている。コマンド「ls -i」等で確認できる。
- ファイル名…ファイルの名前。
- iノード…アクセス権、サイズ、所有者、アドレス(そのファイルが記憶媒体のどこに保管されているか)等のファイル関連の情報。
- ファイルの内容…テキストや音声等のファイルの中身のこと。
3.ファイル名のルール
✅文字数制限
- 通常ファイル名は255文字まで
- パス全体の長さ(ディレクトリ+ファイル名)は4096文字までが通常
✅使用可能文字
- 英数字(a~z、A~Z、0~9)
- 記号(-_.+,=@~:%#)
- 記号※非推奨(*?!&`$'”\(){}[];<>)
- スペース※エスケープが必要
✅大文字と小文字の区別がある※Windowsは無い
✅拡張子が必須ではない
✅ファイル名の先頭に「.」を入れることで通常の操作では表示されない隠しファイルになる。
4.ファイルの種類
Linuxでは用途に分けて4種類のファイルが存在する。
種類 | 説明 |
通常ファイル | テキストや音声のデータファイルやプログラムファイル等のユーザーが通常使用するファイル。 |
ディレクトリファイル | Windowsで言うフォルダのこと。複数のファイルをまとめるためのファイル。 |
リンクファイル | ファイルに別名をつける仕組み。1つのファイルに複数の名前(パス)をつけて、複数個所から同じファイルにアクセスするためのファイル。 ※本ページ「5.」で解説。 |
特殊ファイル | システムが特別な役割を持たせているファイル。入出力デバイス等の管理ファイル等が多い。 /devディレクトリによくある。 |
5.リンクファイル
リンクファイルは他のファイルを参照するファイル。ハードリンクとシンボリックリンクの2種類のリンクファイルが存在する。
(1)ハードリンク
ファイルのiノード(本ページ「2.」参照)を直接共有する方法。オリジナルとリンク先が中身も含めて全く同じで、個別にファイルのiノードを持たない。
オリジナルのファイルを削除してもハードリンクがあれば、内容は残り続ける。
そのファイルにいくつのハードリンクがあるかをリンクカウントと言い、リンクカウントが0になる、つまりハードリンクをすべて削除したときにファイルが完全削除される。
【制限】
・別のファイルシステムへのハードリンクはできない(物理的にファイルが保存されているディスクやパーティション内のみ利用可)
・通常のユーザーはディレクトリのハードリンクを作れない(ディレクトリ間での参照の無限ループが発生する可能性があるため)
(2)シンボリックリンク
オリジナルファイルへのパス情報を持つだけで、Windowsのショートカットと同じもの。
シンボリックリンクファイル自体がiノードを有しており、ファイルの内容にオリジナルファイルへのパス情報を保存している。そのため、シンボリックリンクを削除しても元のファイルは残り続け、また、元のファイルを削除すればファイルは完全に消える。
制限も特になく、別のファイルシステムにもディレクトリにも作成可能。