温馨提示×

ubuntu readdir是否区分大小写

小樊
46
2026-10-18 08:01:01
栏目: 智能运维

在 Ubuntu(Linux 一般行为) 上,readdir() 本身不区分大小写,是否区分大小写取决于 文件所在文件系统的类型。


1. readdir() 是“原样返回”

readdir()(以及 getdents 系统调用)只是把目录里 存储的文件名原样返回,它不做任何大小写处理。

例如目录里有:

File.txt
file.txt
FILE.TXT

readdir() 会依次返回这三个名字,完全区分大小写。


2. Ubuntu 默认文件系统是区分大小写的

Ubuntu 默认使用:

  • ext4
  • xfs
  • btrfs

这些文件系统 区分文件名大小写:

open("File.txt") != open("file.txt")

3. 例外情况(不区分大小写)

以下情况在 Ubuntu 上 可能不区分大小写:

✅ FAT32 / exFAT / NTFS(挂载时)

这些文件系统本身 不区分大小写:

mount | grep vfat

例如 U 盘(FAT32):

abc.txt
ABC.TXT

在 Linux 下被视为 同一个文件。

注意:Linux 内核会在 VFS 层做大小写不敏感处理。


4. 总结

项目 是否区分大小写
readdir() 函数 ❌ 不处理
ext4 / xfs / btrfs ✅ 区分
FAT32 / exFAT / NTFS ❌ 不区分
Ubuntu 默认磁盘 ✅ 区分

如果你是在写程序(C / C++ / Python / shell),我可以给你具体的示例或注意事项。

0 踩