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?
你的命令:
locate abcdef \ grep 2
locate
在ie之后将其余文本\ grep 2
作为locate
命令的参数,因此它开始处理locate
命令(grep 根本没有执行)。
反斜杠只是在它被 shell 解释为参数的分隔符之后转义了空格。所以你现在调用的是locate
带有三个参数的命令,第一个是abcdef
,第二个是 grep
(带有前导空格),第三个是2
。
locate
在这种情况下,会列出其中至少包含一个搜索词的所有文件。
您的命令将定位系统中文件名中有 2 的所有文件。因为 \ 是一个通配符,它会禁用NAME by *NAME*
.
locate filename \ grep 2
这将忽略文件名并开始搜索文件名中包含 2 的文件