$PATH 中的可执行文件仍然无法识别

$PATH 中的可执行文件仍然无法识别

我遇到了一个问题,出现错误

bash: stp: command not found(stp是我尝试执行的文件的名称)

即使我的 $PATH 变量中有该程序所在的文件夹。我已经检查过几件事:

-确保我正在运行的 shell 中编辑 $PATH。我编辑了位于主目录中的 .bashrc 文件,将其添加$HOME/bin到路径中。我已经通过输入验证我是否在 bash shell 中

$ ps $$返回 bash 作为命令。

- 确保我在 .bashrc 中添加的内容实际上影响了路径(在重新启动 shell 后,但从那时起我也重新启动了计算机)。打字

$ echo $PATH/home/myself/bin确实作为路径的一部分返回。我会注意到感兴趣的文件位于 内的文件夹内/home/myself/bin,但这应该不重要,对吧?

-最后,/pathtofile/stp按照我的预期执行文件。或者只是确保我在目录中并输入./stp.

因此,如果它在我的 $PATH 变量中,我为 bash shell 编辑了正确的配置文件,确保我正在运行 bash,从那时起重新启动了 shell,我确信我忽略了一些非常微不足道的东西。我对 Unix/Linux(运行 Debian)还很陌生,所以我不知道所有的细节。但根据我的理解,无论我在哪里,我都应该能够输入内容,$ stp并且它应该搜索路径并在其中找到它。

答案1

我会注意到感兴趣的文件位于 /home/myself/bin 内的文件夹内,但这应该不重要,对吧?

这很重要,$PATH不是递归的。

您可以移动该文件。或者创建一个链接(硬链接或符号链接)。象征性的可能不会那么混乱:

如果文件存在于 中/home/user/bin/sub-dir/stp,则执行:

ln -s sub-dir/stp ~/bin/stp

或者将新的子目录添加到路径中

PATH=$HOME/bin/sub-dir:$PATH

相关内容