Grep命令停止工作

时间:2016-04-05 14:44:14

标签: unix

突然grep命令停止工作。当我执行ls -l~ / grep显示我的主目录中的一个文件时。但此文件已存在多年。如果我给命令grep - >指向/ bin / grep并使用/ bin / grep它工作正常。任何人都可以建议。

谢谢,

此致 希夫

1 个答案:

答案 0 :(得分:0)

您可以删除主目录中的零字节文件。它没有做任何事情。 (我不知道它是怎么到达那里的。)问题是PATH中的第一个条目,“。”,指向你所在的目录。所以当你在你的主目录中时, shell(我认为是bash)在当前目录中查找grep,并找到那里无法执行任何操作的文件。

我认为拥有“。”是一个坏主意。在你的道路上。如果您来自Windows世界,这很方便,而且很自然,但这意味着执行的内容可能会根据您所在的目录而改变(如您所见)。这也意味着,如果你在一个多用户系统上,有人可以将一个可执行文件放在他们的一个目录中,然后当你cd进入他们的目录时,突然间你正在执行他们的代码,这可能是不是你想要的,也可能是危险的。

相反,请从PATH中删除“。:”(点冒号)。当您需要在当前目录中运行脚本时,请在其名称中添加“./”以执行它。 “/ bin”和“/ usr / bin”通常应位于列表的前面。有些人喜欢将“/ usr / local / bin”放在列表的前面或其他位置。

您可以通过编辑.profile或.bash_profile或.bashrc来更改PATH。这取决于你如何设置shell。小心将PATH中的每个目录路径与一个“:”字符分开。