如何在Linux中证明目录是文件

时间:2019-02-12 01:42:03

标签: linux linux-kernel

“一切都是Linux中的文件” 。我如何证明目录在Linux中表示为文件。同样,所有东西都创建并在Linux中以文件形式表示的物理硬件设备。但是我如何通过向他人提供支持示例来证明这一概念。

在Liniux。(POC)中以目录查看目录和其他物理硬件。

1 个答案:

答案 0 :(得分:0)

“一切都是Linux中的文件”语句有点过分简化了。 Linux中有很多东西都以文件的形式出现,但并不像您通常认为的那样“起作用”。

阻止文件(例如/dev/loop0)就是一个很好的例子,因为它们被用作与设备驱动程序进行通信的方式。

也就是说,目录是它们自己的“特殊”文件,其中包含指向文件inode的inode ID。我想对任何目录进行简单的“证明”都是ls -l,您会注意到其中大多数(如果不是全部)列出的文件大小为4096字节,而不是列出其内容的总大小。

4096字节是大多数文件系统中最小的块大小,通常足以容纳目录的所有信息(inode ID)。因此,目录而不是直接信息/对其文件的访问,而是保留有关它们的元数据。

或者,在任何目录上使用stat将显示其自己的inode编号(以及其具有的链接数)。

编辑:目录文件包含 inode id (指向文件inode的指针),而不是inode本身。我已经编辑了答案。