今天在豆瓣上看到的文章,原文来自Rob Pike 8月发表在google plus上关于Unix dot files实现的教训,才知道Unix以.开头的文件被作为隐藏文件是个不经意的结果:

在当年Unix的文件系统在设计过程中,加入了.(当前路径)和..(上层路径)来方便路径定位。但是在输入ls的时候,.和..却错误地被显示,所以Ken或Dennis加入了用汇编写的判断,用C写出来就是:

if (name[0] == '.') continue;

其实正确的写法本应是:

if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;

于是被简写的代码无心插柳:出现了隐藏文件(dot file)的思路。其实Unix就是个各种bug不好用的系统,但是后来各种bug习惯了,就成了约定俗成的feature。就好像博主是个好人,但是好人卡拿多了习惯了,最后就forever alone了<-解释给猪肉肉听!

Rob Pike吐槽这是个捷径的教训,他认为应该是文件来发挥这个作用,而不是以文件的命名方式决定。

For those who object that dot files serve a purpose, I don't dispute that but counter that it's the files that serve the purpose, not the convention for their names.

前半句没看懂,被自己蠢哭>3<类似于DOS and MS Windows系统?附个资料~Hidden file and hidden directory