我已经写了一个程序对服务器执行健康检查。它的功能之一是它可以检查符号链接是否存在。我目前正在编写单元测试(与 Travis CI 一起使用),我想知道是否有任何符号链接可以依赖于任何 Linux 系统。
例如,我目前使用 进行单元测试/bin/sh
,这通常是类似于 之类的符号链接/bin/bash
。
Linux 是否有一组默认存在的符号链接?
答案1
不,因为没有标准的 Linux 发行版。 Linux 只是一个内核,并没有指定任何有关用户空间的信息,包括文件布局。如果你想将范围缩小到 Linux 发行版的一个子集,你也许能够找到一些东西(正如你所指出的,/bin/sh
作为一个很好的候选者)
然而,内核本身确实有一些特殊的文件系统,特别是 /proc 和 /sys,它们直接是内核的一部分,并且包含符号链接。因此,例如:
$ file /proc/$$/exe
/proc/7622/exe: symbolic link to `/usr/bin/bash'
然而,我不确定我是否会依赖它来进行测试,因为a)proc实际上可能并不在每个测试系统中可用,b)因为它不是真正的文件系统,所以它看起来有点狡猾。为什么不创建自己的符号链接作为测试的一部分呢?