Странное поведение `locate` - почему?
locate "*.png" возвращает все файлы, заканчивающиеся на .png, как и ожидалось.
locate "test.*" ничего не возвращает, но есть файлы с именем test в моей системе.
locate "*test" возвращает все файлы, заканчивающиеся на test, как и ожидалось.
locate "test*" ничего не возвращает, но есть файлы, начинающиеся с test в моей системе.
Почему подстановочные знаки, кажется, работают только для "окончания"?
1 ответ
locate "test.*"ничего не возвращает, но в моей системе есть файлы с именем test.
. рассматривается как точка, а не как в регулярном выражении как произвольный символ, так test.* не совпадает test, но test.foo,
locate "test*"ничего не возвращает, но есть файлы, начинающиеся сtestв моей системе.
locate хранит полный путь к файлу, поэтому для поиска файлов, начинающихся с test, следует использовать locate "*/test*",
Последний пункт может быть запутанным, так как locate foo находит что-либо в том числе fooТаким образом, шаблон интерпретируется как *foo*, Кажется, что шаблон не заключен в звезды, если в шаблоне уже есть один подстановочный знак.
Отказ от ответственности: я провел некоторые тесты, и это мои выводы, я не могу доказать их, ссылаясь на справочную страницу, которая кажется очень элементарной.