Num*_*945 5 command-line locate
要将locate命令与正则表达式一起使用,我们是否需要将模式与传递--regex选项一起用引号括起来?如果是,那么以下是什么意思——
一)locate --regex file*?这里会发生正则表达式还是 shell globbing ?
乙)locate 'file*'?即使我们没有通过 locate 也会做正则表达式搜索--regex吗?
c) locate file* // 我知道 shell globbing 会发生
d) locate --regex 'file*'// 我知道正则表达式搜索将发生在数据库文件中
在 shell 提示符下键入命令。shell 处理您输入的内容,包括通配符、替换变量、替换$()等。处理完您输入的内容后,shell 将执行该命令。
如果字符串包含 shell 特有的字符(例如空格或星号),但您不希望 shell 处理它们,则需要引号。如果当前目录中没有匹配的文件,您将无需引用星号就可以离开,但无论如何引用它是一种很好的做法。
重要的是要了解该--regex选项对 shell 的操作没有影响。首先,shell 处理您键入的命令。locate得到那个处理的结果。
一)如果在当前目录中的文件相匹配的file*,shell将替换file*与这些文件的列表之前调用locate。如果没有匹配,外壳不会接触file*,并找到寻找被命名的文件file,filee,fileee等等。简而言之,shell 尝试通配符,然后locate如果 shell 的通配符产生正确的语法,则执行正则表达式搜索。
b) 引号告诉外壳不要管星号。locate将查找以file. 没有正则表达式搜索。
c) shell 尝试 globbing,如 a)。如果没有匹配项,locate将查找以file. 没有正则表达式搜索。
d) 外壳不考虑表达式。locate执行针对被命名文件正则表达式搜索和外观file,filee,fileee等等。
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |