ファイルシステムにおける大文字小文字区別

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

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

これらのファイルシステムでは、大文字小文字を区別する。

タイトルとURLをコピーしました