Я думаю, что проблема возникает из-за того, что оболочка (в терминале), в которой вы запускаете поставщик, не является оболочкой входа. Сделайте его оболочкой входа в систему следующим образом:
bash --login Вы можете использовать locate /rootpath/*filenamespec
.I раньше не пробовал, но он работает. Для вашего примера это будет locate / home / tim / science / * math *
Возможно, вы захотите посмотреть на команду find
чем найти
для такого поведения. Синтаксисом будет find rootforsearch -name filenamepattern -print
. В этом случае ваш пример потребует find / home / tim / science -name * math * -print
. Не так быстро, как найти, поскольку нет базы данных для поиска ... она фактически ищет файловую систему. Существует множество опций, которые вы можете использовать, кроме печати, если вы собираетесь на самом деле что-то делать с файлом.
Вы можете использовать locate /rootpath/*filenamespec
.I раньше не пробовал, но он работает. Для вашего примера это будет locate / home / tim / science / * math *
Возможно, вы захотите посмотреть на команду find
чем найти
для такого поведения. Синтаксисом будет find rootforsearch -name filenamepattern -print
. В этом случае ваш пример потребует find / home / tim / science -name * math * -print
. Не так быстро, как найти, поскольку нет базы данных для поиска ... она фактически ищет файловую систему. Существует множество опций, которые вы можете использовать, кроме печати, если вы собираетесь на самом деле что-то делать с файлом.
локализовать
(не требуя никакой другой утилиты, такой как grep
) и делает это без регулярных выражений (которые хороши, но в этом случае не нужны).
– Tom
9 April 2015 в 15:37
Протяните его через grep, как это
$ найдите меньше | grep ^ / bin / bin / bzless / bin / less / bin / lessecho / bin / lessfile / bin / lesskey / bin / lesspipe / bin / zless
Изменить: другой ответ лучше , Я не знал, что вы можете передать шаблон для поиска.
locate
выполняет поиск O (log (n))
по , расположенныйb
, когда вы даете ему поисковый запрос без регулярного выражения, тогда вы может использовать регулярное выражение grep
для выполнения поиска O (m)
по уже уменьшенным под-результатам. (n = общее количество записей в находитсяb
[т.е. все файлы вашего диска], m = # записей, которые меньше соответствуют вашему расположенному b
), общая сложность работы: O (log (n)) + O (m)
, где m в среднем log (n)
, поэтому вы получаете 2 * O (log (n) )
, в отличие от O (n)
, когда вы выполняете запрос регулярного выражения по всем элементам в , расположенном в
.
– Marcel Valdez Orozco
14 February 2018 в 04:52
O (log (n))
, а поиск в регулярном выражении - O (n)
? Количество записей в db одинаково в каждом случае. Я думаю, это алгоритм поиска?
– Flashrunner
14 February 2018 в 20:28
Для меня наиболее удобно
cd /home/tim/science
locate math | grep `pwd`