WindowsやMacを使っている場合、多くの場合はファイル名の大文字小文字を区別していないが、GNU/Linuxシステムなどでは、大文字小文字を区別しているものもあり、これが、しばしば問題になることがある。ここでは、OS/ファイルシステムにおける大文字・小文字の区別の有無などについて、書いてみたい。
Windowsでは多くの場合大文字小文字を区別しないが・・・
Windowsでは、多くの場合、以下のファイルシステムを使っている。
- FAT (FAT12/FAT16/FAT32)
- exFAT
- NTFS
うち、FATとexFATはファイルシステムレベルで大文字小文字を区別しない。
実はNTFSはファイルシステムレベルでは大文字小文字を区別しているが、古いバージョンのWindowsとの互換性を確保するため、Windows APIを使っている時は大文字小文字を区別しない挙動になっている。
NTFSが大文字小文字を区別する挙動をする場合は、UNIX系のAPIを使っている時である。Windows 10ではWindows Subsystem for Linuxを使っている時は大文字小文字を区別することに起因するトラブルが発生する場合があるため、気をつけたいところである。
macOSの場合
macOSの場合は、以下のファイルシステムが使われている。
- HFS+
- APFS
HFS+、APFS共にデフォルトでは大文字小文字を区別しない設定となっているが、ボリュームをフォーマットするときに大文字小文字を区別する設定のファイルシステムが用意されているため、大文字小文字を区別する設定のものを使えば大文字小文字を区別する。
Sierraまでは、HFSが利用可能だったが、これは大文字小文字を区別しない。
Unix系やGNU/Linuxシステムは区別する
Unix系やGNU/Linuxシステムは、それぞれ独自のファイルシステムを採用していることもあり、多岐にわたっている。以下は比較的知名度の高いUnix系およびGNU/Linuxで使われているファイルシステムである。
- ext2/ext3/ext4
- XFS
- JFS
- UFS
- ZFS
- Btrfs
これらのファイルシステムでは、大文字小文字を区別する。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。