我知道我们可以通过绝对文件路径以及命令本身来调用 Unix 或 Linux 命令。例如我们可以通过键入ls以及/bin/ls(在Linux中)列出目录内容有什么区别吗?. 当我这样做时,我得到了相同的输出,但只有文件类型之间的颜色分离不同,您可以在上传的图像中看到它。
ls在提示符下发出命令不仅仅是调用/bin/ls. 如果ls是别名或函数,则将调用该别名或函数。如果两者都不是,而且还不是内置命令(ls很少是内置命令),那么将在环境变量ls的:-delimited 列表中的每个目录中执行路径搜索$PATH。
在ls这是第一个发现$PATH会被处决。这可能是另一个ls比/bin/ls是否包含这样的名称的目录早于位于/bin在$PATH列表中。
使用/bin/sh将绕过别名和函数查找以及任何查找,$PATH而是直接运行该命令。
ls和之间的输出颜色差异/bin/ls可能可以通过ls在调用ls实用程序时添加额外命令行选项的别名来解释(使用alias ls或type -a lsin检查bash)。