我需要使用bash找出我正在运行的Linux发行版。找到了这个页面,非常有帮助。
然而我的系统有两个/etc/*-release文件。
/etc/lsb-release
/etc/os-release
看起来os-release
提供了更多的信息,但这两个文件实质上做的事情似乎是一样的。有人知道它们之间的区别吗?顺带一提,在lsb-release
中,lsb
代表什么?
我需要使用bash找出我正在运行的Linux发行版。找到了这个页面,非常有帮助。
然而我的系统有两个/etc/*-release文件。
/etc/lsb-release
/etc/os-release
看起来os-release
提供了更多的信息,但这两个文件实质上做的事情似乎是一样的。有人知道它们之间的区别吗?顺带一提,在lsb-release
中,lsb
代表什么?
/etc/lsb-release
文件是一些但不是所有Linux发行版为旧程序准备的文件。 "lsb"指的是Linux标准基础,该项目致力于定义任何Linux发行版都要遵循的一组共同标准,包括文件系统布局等。然而,那个文件/etc/lsb-release
并不是标准的一部分。这是一些发行版使用的额外东西,但不是全部。
/etc/os-release
文件确实是标准的。任何基于systemd的发行版,包括Red Hat Enterprise Linux、CentOS、Fedora、Gentoo、Debian、Mint、Ubuntu和许多其他发行版,都必须有该文件。不使用systemd的发行版也可能有该文件。
如果您需要一种可靠的检测运行的Linux发行版的方式,则最好的选择是阅读/etc/os-release文件。如果那里没有文件,可以尝试运行名为lsb_release
的程序。但忽略掉/etc/lsb-release
文件。
您可以在此处和此处了解有关os-release的更多信息。为了好玩,请看看Linux发行版曾使用的所有不同文件!