“一切都是Linux中的文件” 。我如何证明目录在Linux中表示为文件。同样,所有东西都创建并在Linux中以文件形式表示的物理硬件设备。但是我如何通过向他人提供支持示例来证明这一概念。
在Liniux。(POC)中以目录查看目录和其他物理硬件。
答案 0 :(得分:0)
“一切都是Linux中的文件”语句有点过分简化了。 Linux中有很多东西都以文件的形式出现,但并不像您通常认为的那样“起作用”。
阻止文件(例如/dev/loop0
)就是一个很好的例子,因为它们被用作与设备驱动程序进行通信的方式。
也就是说,目录是它们自己的“特殊”文件,其中包含指向文件inode的inode ID。我想对任何目录进行简单的“证明”都是ls -l
,您会注意到其中大多数(如果不是全部)列出的文件大小为4096字节,而不是列出其内容的总大小。
4096字节是大多数文件系统中最小的块大小,通常足以容纳目录的所有信息(inode ID)。因此,目录而不是直接信息/对其文件的访问,而是保留有关它们的元数据。
或者,在任何目录上使用stat
将显示其自己的inode编号(以及其具有的链接数)。
编辑:目录文件包含 inode id (指向文件inode的指针),而不是inode本身。我已经编辑了答案。