这是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) 我在玩一些可执行文件的名称,将它们放在一个文件夹中~/bin,该文件夹位于我的$PATH. 现在我想知道如何设置bash-3.2终端的首选项,以便它选择这些可执行文件而不是要执行的内置程序或别名。
例如,如果我将一个名为的脚本放在cd中的目录中$PATH,cd则仍会执行内置的 for 。但是,如果我创建一个aliasfor cd,那么这个别名将被执行,覆盖内置函数。
$ type cd
cd is a shell builtin
Run Code Online (Sandbox Code Playgroud)
有没有办法让可执行文件在$PATH默认情况下优先于内置的shell,只执行,例如cd,不必求助于使用命令builtin或command?
我也对任何讨论这种偏好的官方参考资料感兴趣(不是我理解的推理)。
注意:这个问题纯粹是出于个人教育目的,我想知道为什么它会这样工作。