答案1
我相信版本 7 Unix 只支持单个文件系统。现代操作系统(包括 Linux)支持很多很多文件系统。 Linux 内核中有一个“虚拟文件系统”代码层,可以使所有这些不同的文件系统表现得像 Posix 和 Linux 程序所期望的那样。例如。 Linux 可以使用各种 MS-DOS 文件系统和 NTFS,并且这些系统中的文件所拥有的权限并不完全是 Linux 想要的用户/组/其他、读/写/执行。因此,虚拟文件系统代码负责协调它们。由于某些文件系统(例如 MS-DOS FAT 文件系统和 ReiserFS)没有将目录视为文件,因此虚拟文件系统代码不会将目录视为带有特殊标记的文件,就像版本 7 UFS 那样。您可以open()
对目录执行系统调用,但必须使用getdents()
系统调用从目录中读取条目。
答案2
从“UNIX(和 Linux)中的一切都是文件”的意义上来说,它们仍然是文件。该cat
程序变得更加聪明,并意识到“这是一种目录类型的文件,因此将其显示为文本文件是没有意义的”,因此出现了更新的行为。