目录的嵌套序列!

目录的嵌套序列!

当我搜索可以(半)控制亮度的文件时,我意外地发现了如下的嵌套目录序列

aneesh@nb-14:~$ cd /sys/class/graphics/fb0/device
aneesh@nb-14:/sys/class/graphics/fb0/device$ cd graphics/fb0/device
aneesh@nb-14:/sys/class/graphics/fb0/device/graphics/fb0/device$ l
driver@  graphics/  modalias  power/  subsystem@  uevent
aneesh@nb-14:/sys/class/graphics/fb0/device/graphics/fb0/device$ 

  • 存在如此嵌套的目录序列的动机是什么?

  • 这怎么可能呢?我想到了一个可能的答案。例如:要创建序列/a/b/a/b/a/b...,可以创建指向目录的链接/a并将其粘贴到文件夹中/a/b。这是形成嵌套序列的唯一方法吗?

    从符号上看,这并不明显:为了验证这一点,我尝试给出命令l(见上文),并找到了针对每个文件/目录的符号。我从这个论坛本身了解到,在结果中l,符号@用于指示驱动程序和/目录。但没有符号指示表明某个文件夹实际上是指向另一个文件夹的链接!此外,没有手动输入来l查找哪个符号(如果有)表示文件链接。

  • 答案1

    您看到的循环(嵌套)实际上具有非常重要的用途。

    想象一下“给我与该设备相同的设备上的其他设备”。我知道这在视频卡环境中令人困惑,但想想声卡。

    “给我与输出 5 同一张卡上的其他输出”

    为了做到这一点,您需要某种“我父母的子女”,这正是您在这里所拥有的。“我父母的子女”可能只有 1 个条目,但这是可以的。

    更复杂的是,/sys 文件夹实际上并不存在。它是内核内容的枚举。因此,它有点像用于访问内核数据的“易于使用的 API”。因此,这不仅会导致像您的示例这样的情况,而且实际上没有文件,所以如果确实如此,那也没关系。

    要查看某个文件是否是链接,您可以随时使用 ls -la 显示更详细的信息。但请记住,这些文件不是真实的,可能不是真正意义上的符号链接,因此完全有可能进行递归,而无需做任何“错误”的事情或使用链接等。

    相关内容