我的电脑上有两个独立的文件,
which execfile
/usr/local/bin/
/usr/bin/
那么,我在两个不同的目录中有两个同名的文件。我该如何指定要运行哪个命令?
答案1
您可以在运行命令时指定其完整路径,输入:
/usr/bin/execfile
或者
/usr/local/bin/execfile
运行该路径上的精确文件
答案2
/usr/local/bin/execfile
或者
/usr/bin/execfile
答案3
尝试执行命令时富,富将在 PATH 环境变量指定的目录中搜索,搜索顺序与指定顺序相同。如果要避免这种情况,请键入可执行文件的完整路径。
在终端中输入:
echo $PATH
查看您的实际PATH环境变量内容。
例如,如果您希望始终执行 /bin 中的第一个可执行文件,请确保 /bin 在 $PATH 中排在第一位。您可以在主目录中的 .profile 文件中指定 PATH。因此,对于上述示例,请编辑文件并将此行放在末尾:
导出 PATH=/bin:$PATH
这只对您的用户有效。如果您想以系统范围的方式指定 $PATH(它将对所有用户有效,除了那些在 .profile 中更改它的用户),请在文件 /etc/profile 中添加上述相同的行(您需要 root 权限)。
还要记住,配置文件只是在最初被解析。这意味着,如果您编辑个人 .profile 文件,则必须让您的 shell 重新解析它。您可以注销并再次登录,或者键入以下内容:
源 ~/.profile
对于系统范围的更改,请键入
源 /etc/profile
这将使你当前的 shell 会话重新解析配置文件。如果你想让你的完整引导系统再次解析它,我认为你最好重新启动会话。
还请记住,如果您使用 bash 以外的 shell,情况可能会发生变化。
您可以在 bash 手册页中找到一些有趣的信息:http://linux.die.net/man/1/bash
参见“命令执行”部分。
答案4
还要检查它们是否都属于同一个文件 - 就像它可能是链接
ls -al /usr/bin
ls -al /usr/local/bin
并检查它们是否链接在一起
如果它们链接在一起,那么你可以执行任何无差异的操作,否则你必须指定完整路径