为什么 UNIX 等系统的隐藏目录以点开头?

我们都知道,在 Windows 下隐藏文件夹是看不到的,它们有的是系统文件,而有的则是病毒。如果非要显示的话,经过系统的警告之后,你可以以半透明的文件夹的形式看到这个文件夹,系统以此来标识一个文件夹是隐藏的,它有着“-s”的属性,受到系统保护。

那么很多人刚刚接触 Linux、OSX,就会很不习惯,因为这些操作系统的隐藏文件是以点开头来标记的,这些目录的名称甚至都不能在 Windows 下用来给文件夹命名!

当然,如果是提前命名好了的,则又可以复制粘贴到 Windows 下,嗯,也可以正常访问,只不过不再隐藏了——水土不服嘛,要不然你怎么总能够在 OSX 上看到 U 盘里多出来的奇妙目录呢?

那么,为什么 OSX、Linux 要使用这种奇葩的隐藏文件和目录的方法呢?!像 Windows 一样,直接来一个“隐藏”的属性,我们打个勾可好?

其实,这个问题由来已久。

就像 Linux 下每个目录的命名方式一样,这个隐藏文件的命名形式是有历史的:它来自一个命令的 bug.

早在以前,Linux 等操作系统没有图形界面,而命令行的话我们想要查看一个目录,则需要使用命令 ls(由于类 UNIX 操作系统有相对 Windows 更完善的权限机制,倒是并不太需要通过隐藏的方式来保护文件和目录)

我们都知道,在命令行里无论在哪个目录,总有两个目录永恒存在,那就是点点

一个点代表了当前目录,两个点代表了上级目录,所以我们会使用切换目录命令(cd)通过切换到两个点来表示转到上级(Windows 中则是“向上”)

那么一般这一个点这个没什么用处——或者说意义不大,所以 ls 默认不会显示这个目录,即隐藏掉了这个,只留下了点点

但一个目录里总有那么几个平时不用但必须存在的文件(比如配置文件配置目录之类的),能够隐藏可好?(终于有人发出了隐藏的需求!)

后来人们就发现 ls  命令有个 bug,所有以点开头的名称好像都不会被显示呀!

所以这样隐藏文件的方法一来二去就传开了——时至今日,bug 变成了 feature

😃

“为什么 UNIX 等系统的隐藏目录以点开头?”的3个回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

34 − 27 =