locate "*.png"
正如预期的那样,返回所有以 结尾的文件.png
。
locate "test.*"
没有返回任何内容,但是test
我的系统中有命名的文件。
locate "*test"
正如预期的那样,返回所有以 结尾的文件test
。
locate "test*"
没有返回任何内容,但test
我的系统中存在以 开头的文件。
为什么通配符似乎只对“以...结尾”有效?
答案1
locate "test.*"
没有返回任何内容,但我的系统中存在名为 test 的文件。
.
被视为点,而不是像正则表达式中的任意字符,因此test.*
不匹配test
,但是test.foo
。
locate "test*"
没有返回任何内容,但test
我的系统中存在以 开头的文件。
查找商店文件的完整路径,因此要查找以 test 开头的文件,您应该使用locate "*/test*"
。
最后一点可能会令人困惑,因为locate foo
会找到包括在内的任何内容foo
,因此模式被解释为*foo*
。如果模式中已经有一个通配符,则模式似乎没有被星号括起来。
免责声明:我做了一些测试,这些是我的结论,我无法通过引用手册页来证明它们,这似乎非常简陋。