2

I mistyped |(bar) as \ (backslash)

locate abcdef \ grep 2

like this. Then bash start to find all files that include '2' in their name.
Why this happen?

4

3 回答 3

5

你的命令:

locate abcdef \ grep 2

locate在ie之后将其余文本\ grep 2作为locate命令的参数,因此它开始处理locate命令(grep 根本没有执行)。

于 2013-10-24T08:14:36.127 回答
3

反斜杠只是在它被 shell 解释为参数的分隔符之后转义了空格。所以你现在调用的是locate带有三个参数的命令,第一个是abcdef,第二个是 grep(带有前导空格),第三个是2

locate在这种情况下,会列出其中至少包含一个搜索词的所有文件。

于 2013-10-24T08:56:47.987 回答
0

您的命令将定位系统中文件名中有 2 的所有文件。因为 \ 是一个通配符,它​​会禁用NAME by *NAME*.

locate filename \ grep 2

这将忽略文件名并开始搜索文件名中包含 2 的文件

于 2013-10-24T09:08:37.147 回答