Linux 怪问题 touch: 未找到命令?

Linux 怪问题 touch: 未找到命令?

我遇到了一个非常奇怪的问题,即触摸:未找到命令。

我本来要创建一个空白文件,因此我输入了 touch 命令,但是没有作用。

我正在运行 centOS 5。

有任何想法吗?

顺便说一句:vi 命令也找不到。

答案1

你可能暂时弄乱了你的路径。执行以下操作可能就足够了:

exec /bin/bash

然后您可以尝试touch等等以确保一切正常。

如果这不起作用,则您的某个系统文件中的 PATH 定义是错误的。

答案2

尝试手动查找该命令。它将是一个名为 touch 的文件,在我当前的系统中它是 /bin/touch。您可以使用locate touch 或 find / -name touch 找到它。如果您使用locate 找到它并且它不在它应该在的位置,则可能意味着它最近被移动或删除了。

找到命令后,使用 echo $PATH 确保它位于您的 PATH 中。如果一切正常,请尝试同时指定路径和命令(即 /bin/touch foo)。您可能还想检查您的别名,看看是否有任何东西弄乱了。

观察一下,您提到 vi 也不起作用。在我的系统中,vi 和 touch 都在 /bin 中,而不是 /usr/bin 中。检查您是否能够从那里运行其他命令。

答案3

我犯了一个错误,在脚本中覆盖了我的 PATH;

while read -r PATH; do
  touch "${PATH}";
done < <(git diff-tree --no-commit-id --name-only -r "${COMMIT_ID}")

read -r PATH位清除了触摸二进制的路径。

修复方法是简单重命名:

while read -r GIT_PATH; do

答案4

你可能无意中删除了触碰

您可以通过以下方式重新安装复制 来自另一台计算机

/bin/

使用命令:sudo cp path/to/copied/touch /bin

相关内容