相关疑难解决方法(0)

仅按名称运行可执行文件与在其前面附加点/斜杠有什么区别?

这是ls -all命令的输出:

-rwxr----- 1 subhrcho dba  3600 Nov 13 17:26 jdev
-rw-r----- 1 subhrcho dba  1566 Nov 13 17:26 jdev-Darwin.conf
-rw-r----- 1 subhrcho dba   347 Mar  6  2009 jdev-debug.boot
-rw-r----- 1 subhrcho dba   821 Nov 13 17:26 jdev-logging-debug.conf
-rw-r----- 1 subhrcho dba   584 Nov 13 17:26 jdev-logging.conf
-rw-r----- 1 subhrcho dba  4717 Jul 31 16:09 jdev.boot
-rw-r----- 1 subhrcho dba 12877 Nov 13 17:26 jdev.common
-rw-r----- 1 subhrcho dba  5047 Dec  6 01:43 jdev.conf
-rwxr-x--- 1 subhrcho dba …
Run Code Online (Sandbox Code Playgroud)

process command

13
推荐指数
2
解决办法
1769
查看次数

可执行文件的默认首选项优于同名的内置函数

我在玩一些可执行文件的名称,将它们放在一个文件夹中~/bin,该文件夹位于我的$PATH. 现在我想知道如何设置bash-3.2终端的首选项,以便它选择这些可执行文件而不是要执行的内置程序或别名。

例如,如果我将一个名为的脚本放在cd中的目录中$PATHcd则仍会执行内置的 for 。但是,如果我创建一个aliasfor cd,那么这个别名将被执行,覆盖内置函数。

$ type cd
cd is a shell builtin
Run Code Online (Sandbox Code Playgroud)

我的问题

  1. 有没有办法让可执行文件在$PATH默认情况下优先于内置的shell,只执行,例如cd,不必求助于使用命令builtincommand

  2. 我也对任何讨论这种偏好的官方参考资料感兴趣(不是我理解的推理)。

注意:这个问题纯粹是出于个人教育目的,我想知道为什么它会这样工作。

shell bash path shell-builtin

7
推荐指数
1
解决办法
480
查看次数

标签 统计

bash ×1

command ×1

path ×1

process ×1

shell ×1

shell-builtin ×1