鱼C论坛

 找回密码
 立即注册
查看: 45|回复: 2

为什么文件名不能有“\ / : * ? " < > |”?

[复制链接]
发表于 前天 16:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 中英文泡椒 于 2026-8-19 16:04 编辑

不知道大家在新建文件或者给文件重命名的时候,有没有遇到过这样的问题?

23f3332fd87053fca5fc7991cb5ba9f.png

这时候大家可能会想:计算机干什么吃的?怎么连这几个平平无奇的符号都容不下?为什么偏偏是  \ / : * ? " < > |  这 9 个?

计算机并不“聪明”!

我们先要明白一个前提:计算机很笨,它没有人类那样的理解能力。

例如:“2026/05/25 报告.docx”里的斜杠/,人类知道是代表日期。但对计算机来说,它看到这样一串字符时,必须用一套严格的规矩

去“翻译”。

为了让计算机不搞混,有些字符就被有了“特权”,成为了控制命令。因此,你就不被允许在文件名里再用它们。

为什么偏偏是这 9 个符号?

我们可以把这 9 个特权符号分为四大类,分别说说他们都为什么成为特权阶级。

指引路径的 \ 和 /

这两个斜杠,在计算机里技术上叫路径分隔符,在编程的时候我们经常会用到。给你一个文件“2026/05/25 报告.docx”,

计算机默认是在 2026 文件夹下寻找 05 文件夹,然后再找到 .docx 这个文件。

再例如、D:\照片\猫.png,这里的反斜杠(或者斜杠)就像是路标,告诉计算机:“进了D盘,再进照片文件夹,最后找到猫”。

磁盘的钥匙 :

英文冒号:在 Windows 系统里,是专门用来标记盘符的。比如、C:代表C盘,D:代表D盘。

因此,如果你的文件名叫 我的:秘密.txt,计算机一读到冒号,就会以为你想去一个叫“我的”的磁盘,结果自然是找不到,因

为 Windows 压根不允许你用中文磁盘名,你看到的什么 D 盘是软件盘,只是取得别名罢了。

72c652a4301787533bdeeaff8e01fa5.png

通配符 * 和 ?

在python正则表达式中,这俩在正则表达式里扮演着重要作用:

* 用于匹配任意一串字符;
? 用于匹配任意一个字符。

举个例子,用过 Linux 的同学知道,当删除目录下的所有 .jpg 文件时,可以用指令:

  1. rm *.jpg
复制代码


这里 * 就用于匹配所有 JPG 的文件名。因此,如果你把某个文件命名成了 *.doc,哪天你在搜索框一搜,就会把所有文件

列出来,让你无所适从。

早期系统的数据传输 <,> 和 |

这 3 个符号在早期 DOS 系统或命令行中(Win + R,输入 cmd 打开那个),是用于进行数据传输的:

< 和 > 叫重定向符号,用来把数据传输到目标位置;
| 叫管道符号,用来把前一个命令的结果传给下一个命令。

其实熟悉 Linux 的对这些符号都不陌生。因为它们代表动作,如果文件名里带了它们,系统在执行命令时就会误以为要传

输数据,从而引发安全问题。

为什么不与时俱进呢?

游客,如果您要查看本帖隐藏内容请回复


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 前天 18:58 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 02:41 | 显示全部楼层
学到了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-8-21 16:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表