我在 Windows 之前就开始使用 DOS 了,从那时起我就认为
- 每个文件都有文件扩展名,例如
.txt
,.jpg
等 - 该扩展名总是很短(通常为 3 个字母)
我很早就知道扩展名基本上只是向操作系统提示内容类型。后来我接触了 Mac 和 Linux,没有扩展名的文件等等。当然,我也见过较短的扩展名,例如.rb
和.py
。
我刚刚注意到 markdown 格式的文件可以有扩展名.markdown
,这让我很疑惑 - 这个扩展名可以有多长?如果我将它设为.mycrazylongextensiontypewoohoo
,某些操作系统或程序是否会阻塞文件?扩展名通常很短只是为了方便,还是基于某些限制,无论是旧的还是当前的?
答案1
有些操作系统会限制扩展名的长度(例如 DOS 和 OS/2,限制为三个字符),而其他操作系统(例如 Unix)则不会。有些操作系统(例如 RISC OS)不使用文件扩展名。Unix 接受分隔点作为合法字符,但不会在操作系统级别对其进行特殊识别。
http://en.wikipedia.org/wiki/Filename_extension
。
讨论这里
https://stackoverflow.com/questions/417103/max-file-extension-length
答案2
对于没有三个字符扩展名限制的文件系统,扩展名的长度通常没有限制,只有包括扩展名在内的文件名的总长度有限制(例如,Linux 中使用的 ext3 文件系统为 255 字节)。
答案3
我希望能给你一个更深入的理由,但我现在似乎找不到我正在寻找的资源。不过回想一下 DOS 中的 8.3 文件名标准,我相信它是基于 FAT 文件系统的限制。这这篇文章会比我描述得更好。对于 Linux 或 Unix,我相信你可以拥有你想要的任何大小的扩展,因为正如 Moab 所说,操作系统不会给予它特殊的识别,因此不会阻塞它。