易君召
发布于 2026-08-03 / 作者:易君召 / 4 阅读
0

主流操作系统的文件扩展名规则对比

文件扩展名(后缀,如 .txt .exe)本质只是文件名的一部分,操作系统核心差异:是否依靠扩展名识别文件类型、大小写敏感、长度限制、允许字符、隐藏机制

核心区分:

✅ Windows:极度依赖扩展名判断文件类型

✅ Linux/macOS(Unix 系):不依赖扩展名,依靠文件元数据 / 文件头

一、Windows(NTFS/FAT32/exFAT)

1. 扩展名机制

  • 系统默认依靠后缀名确定打开程序、图标;修改后缀直接改变系统对文件的识别。

  • 资源管理器默认隐藏已知类型扩展名(常见坑:xxx.txt.exe 伪装文本文件)。

2. 命名规则

  1. 大小写不敏感File.TXT = file.txt,同一目录不能同时存在两者。

  2. 扩展名无强制长度限制,习惯 1~4 字符;

  3. 文件名整体禁止字符:\ / : * ? " < > |

  4. 不能以 . 单独命名;不建议文件名结尾带 .(系统会自动截断末尾点)

  5. FAT32 传统限制:文件名(名称 + 后缀)最长 255 字符;8.3 短文件名机制(遗留兼容)

  6. 特殊:Windows 没有强制要求必须带扩展名;无后缀文件视为 “未知文件”。

Windows 典型特殊后缀

.exe .bat .cmd .msi .dll:系统识别为可执行文件;

.lnk 快捷方式后缀。

二、Linux(Ext4/XFS/Btrfs 等)

1. 扩展名机制【最重要区别】

操作系统内核完全不使用扩展名!

  • 是否可执行:依靠文件权限位(x 权限),和名字无关。

    runrun.exerun.txt 只要开启 chmod +x 都能执行;没有 x 权限,.exe 也无法直接运行。

  • 文件类型识别依靠:文件头部魔数(file 命令读取)。

  • 扩展名只是给人看的约定习惯,方便用户区分,系统无视。

2. 命名规则

  1. 大小写敏感Data.TXTdata.txt 是两个独立文件;

  2. 允许任意字符(除 / 和空字符 \0),允许文件名以 . 开头(隐藏文件)

  3. 文件名总长度限制:一般 255 字节(UTF-8 一个汉字占 3 字节);

  4. 没有 “必须带后缀” 规范;大量系统程序无扩展名(ls cat bash)。

约定俗成后缀:.sh shell 脚本、.tar.gz 压缩包,仅习惯。

三、macOS(APFS/HFS+,Unix 内核)

底层内核和 Linux 同源,规则介于 Linux 与 Windows 之间:

1. 扩展名机制

  1. 内核本身不依赖后缀,依靠「资源分支 / 文件类型码(旧 HFS)+ 文件头」;

  2. Finder 图形界面重度使用扩展名,用来匹配默认打开程序、显示图标;

  3. 支持【隐藏扩展名】选项(文件显示设置)。

2. 命名规则

  1. APFS:大小写可选敏感(格式化时可选区分大小写,默认不敏感,和 Windows 类似);

  2. 禁止字符:不能包含 :(历史 HFS 遗留),不能有 /

  3. 允许 . 开头隐藏文件;文件名上限 255 字符;

  4. 兼容 Unix 权限:可执行同样依靠权限位,不是后缀。

小知识:macOS 经典旧系统(Mac OS 9 及更早)没有扩展名概念,使用独立文件类型代码。

四、移动端系统

Android(基于 Linux 内核)

  • 底层同 Linux:内核不识别扩展名;

  • APP 层:应用普遍依靠后缀或文件头判断媒体文件(图片、视频、apk);

  • .apk 只是约定,系统安装识别依靠文件内部结构。

  • 文件系统大多大小写敏感(Ext4/F2FS)。

iOS(APFS,类 macOS)

沙盒机制严格,系统更依赖文件元数据;

用户层面:相册、文件 App 依靠后缀识别媒体;

不允许随意修改系统文件后缀,沙盒限制强。

五、通用关键差异汇总表

特性

Windows

Linux

macOS (APFS 默认)

是否依赖扩展名判断文件

✅ 强依赖

❌ 完全不依赖

内核不依赖,GUI 依赖

大小写敏感

❌(可选开启)

可执行判断依据

.exe/.com后缀

文件执行权限 x

权限 + 文件类型

能否文件名为 .bashrc(点开头)

❌ 不推荐 / 容易异常

✅(标准隐藏文件)

禁止特殊字符

`\ / : * ? " < >

`

/\0

/:

末尾能否带 .

❌ 自动删除末尾点

六、跨平台开发 / 文件传输最佳实践(实用建议)

  1. 不要依靠扩展名在程序内判断真实文件格式

    跨平台程序优先读取文件头部魔数(比如判断图片、视频),防止改后缀欺骗。

  2. 文件名统一使用小写、避免空格、中文谨慎处理,不要依靠大小写区分文件。

  3. 不要使用结尾带 .、特殊符号的文件名,保证 Windows 兼容。

  4. Linux 下不要认为 .exe 就是可执行;Windows 下不要删掉程序扩展名。

  5. 压缩包(zip/tar)跨平台打包注意:zip 默认大小写不敏感,tar 保留大小写。

补充常见误区澄清

  1. ❌ 误区:.exe 是通用可执行后缀

    ✅ 事实:.exe 仅 Windows 可识别;Linux/macOS 不能直接运行,和后缀无关。

  2. ❌ 误区:没有扩展名的文件无法打开

    ✅ Windows 只是不知道用什么软件;Linux/macOS 完全正常。

  3. ❌ 误区:扩展名有标准强制长度

    ✅ 所有现代系统都没有强制长度限制,3~4 字符只是历史 DOS 遗留习惯。


原文链接 https://www.yijunzhao.cn/archives/os-file-extension-rules-comparison-guide

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/