2011-03-23 71 views
0

当我更改bash脚本(Ubuntu 10.04)时,脚本被更改,但是当我运行它时,它会运行一个较旧的版本,并且所做的更改将被忽略。 和一些文件,它只是说该文件不存在(即使它...)在ubuntu中:即使文件存在,我也无法更改文件并获取“找不到文件”?

我认为它与权限有关,即使我已确保文件标记为已读&写入为所有用户和可执行文件。但这可能是我需要在“更高层次”上改变的许可? 绝望

+0

需要更多细节。请注意,'.'默认不包含在PATH中(并且不应包含在路径中),因此位于当前工作目录中的运行可执行文件需要使用'./ foo'或'./bar .sh'。尝试使用'echo $ PATH','pwd',并输入'作为你正在尝试使用的文件名。 – sarnold 2011-03-23 11:02:15

回答

1

我更改了该文件夹的权限,然后重新启动了计算机。然后它工作(但不得不重新启动,我认为有点奇怪)。反正现在的作品:)

+0

你应该接受你自己的答案(或者如果你愿意的话),这样这个问题就显示出来了。 – belacqua 2011-03-24 02:25:17

0

从你告诉我这与权限无关。

在编辑器和终端中,您正在编辑和执行相同文件的双重,三重,四重检查。这给我带来了不少WTF时刻。

您在终端中输入的确切命令将有所帮助。

1

如果你想知道哪个版本的文件将在Linux/Unix上运行,你通常可以键入:

which prog 

其中“前卫”是程序的名称。例如,如果你想知道在哪里“的emacs”的位置,或者你实际上是用emacs的哪个副本,您可以键入:

which emacs 

在我的机器,这将返回:

/usr/bin/emacs 

就你而言,如果“which”返回的路径与你正在编辑的文件名称不匹配,那么这将解释你的困惑,并指出你正确的方向来解决问题。我还要通过键入检查PATH环境变量的内容:

echo $PATH 

如果你看到在路的其他目录与您正在编辑的文件目录之前,这说明问题。另外请注意“。” (当前目录)永远不在路径上,或者至少不应该在路径上,出于安全原因。如果要在当前目录中运行程序,请明确使用“./prog”格式,以确保它在当前目录中运行程序“prog”。

相关问题