天天看点

《MacTalk•人生元编程》一一1.6 二逼文件

本节书摘来自异步社区出版社《mactalk•人生元编程》一书中的第1章,第1.6节,作者:池建强,更多章节内容可以访问云栖社区“异步社区”公众号查看。

好,目录文件就介绍到这里,后续介绍的文件类型平时操作很少用到,我把它们统称为二逼文件类型,光荣入选的有以下几个。

块设备文件和字符设备文件,这些文件一般隐藏在/dev目录下,昼伏夜出,平时你感觉不到它们的存在,但是你想进行设备读取和外设交互时,就是它们大显身手的时候。比如磁盘光驱就是块设备文件,串口设备则属于字符设备文件。系统中的所有设备要么是块设备文件,要么是字符设备文件,无一例外。

fifo,江湖人称命名管道,主要用于进程间通讯。比如使用mkfifo命令可以创建一个fifo文件,启用一个进程a从fifo文件里读数据,启动进程b往fifo里写数据,先进先出,随写随读,童叟无欺。

套接字(socket),也是一种文件类型,可以用于进程间的网络通信,也可以用于本机之间的非网络通信。比如你会时不时见到后缀为sock的进程文件,这些文件一般隐藏在/var/run目录下,它们活跃在服务器里,证明着那些相关进程的存在。

符号链接(symbolic link),这种类型的文件类似windows中的快捷方式,是指向另一个文件的间接指针,也就是我们常说的软链接。

            

大约是夜里十一点钟的光景,我走到院子里,深深呼吸,猛然一抬头——天呐,我看见了满天的星星。

天空深蓝,星星密布,似乎触手可及,却又如此高远。没有一丝云彩,没有半点杂光。我呆在当地,张口结舌,感觉和做梦一样。满天都是星星。仔细看,银汉横陈,微微弯曲。北斗七星、北极星、织女星、牛郎星……我认识的星星、不认识的星星,如同珍珠的洪流,一齐向我扑来。一刹那,童年,那若有若无的岁月,也夹在这股洪流中,扑向我,把我的心鼓擂得轰轰作响。我就那样呆站着,痴痴地看,一直到颈脖僵硬,头晕眼花。

从那个时刻起,我再次发现了星星和世界的美丽,我的接近干渴的生命,降下了新鲜甜美的雨水。生命中的起伏和挫折,个人那一点点丧失和伤痛,那似乎无法忍受的一切,与这浩大雄伟的星空比起来,又算得了什么呢?

读好书,时间如天际的流星一闪即过,待得眼皮打架,已近凌晨,于是沉沉睡去。

今天上午9点醒来,吃过早餐就被家里的大小ld指示去打各种酱油,然后就没有上午了。午饭后,所有的血液都流向消化系统,内脏器官拉开架势准备消化主人胡吃海塞的成果,大脑所有理智的指示都被忽略掉,加之最近一个月神经病一样的工作日和休息日,再次昏睡过去,然后就没有下午了。

于是,现在,再一次,我打开mac,开始写这篇文章。在开始之前,有了这些散碎的文字,其中两个问题困扰着我:

1.在坚持了这么久之后,我似乎依然是个拖延症患者.

2.看了这些炉火纯青的文字,每次写字会有心理障碍。是知其不可而为之者与?

在linux文件系统中,其实也存在“软硬”这样的描述,但是不涉及硬件体系,而是我今天要写的硬链接和软链接。

在人类的克隆技术还没那么完美的情况下,人做为一个独立的个体立于天地间,没有副本,没有替身,没有快捷方式,没有还血仙丹,一旦死亡,这个人就算了结了,在现实世界中被抹掉了。

在linux的世界里,大部分文件也是类似的待遇,一旦文件被删除,文件相关的inode信息都会被抹掉,文件占用的磁盘空间也会被释放,这种情况下文件名和inode是一对一的。为了满足更为复杂的文件操作,linux系统的设计者提供了更为高级的服务,那就是硬链接和软链接的技术,这些技术让linux世界里的文件和目录具备了副本和替身的能力。效果就是你明明删除了某个文件,但是如果有人在你删除之前做了文件的硬链接,你会发现同样内容的文件依旧存在于系统中,你刚刚做的修改还在那里冒着热气。不要对自己说见鬼了,这是程序逻辑。

继续阅读