我错误输入|(bar)为\(反斜杠)
locate abcdef \ grep 2
像这样。然后bash开始查找名称中包含“2”的所有文件
为什么会这样?
答案 0 :(得分:5)
你的命令:
locate abcdef \ grep 2
在locate
之后发出其余文本,即\ grep 2
作为locate
命令的参数,因此它开始处理locate
命令(grep根本没有执行)。
答案 1 :(得分:3)
反斜杠只是在被shell解释为参数分隔符之后才逃脱了空间。所以你现在称之为带有三个参数的locate
命令,第一个是abcdef
,第二个是 grep
(带有前导空格),第三个是2
locate
会列出中至少有一个搜索字词的所有文件。
答案 2 :(得分:0)
您的命令将找到系统中文件名为2的所有文件。因为\是一个通配符,它会禁用NAME by *NAME*
的隐式替换。
locate filename \ grep 2
这将忽略文件名并开始搜索文件名为
的文件