Используйте & ldquo; найдите & rdquo; в каком-то конкретном каталоге?

Я думаю, что проблема возникает из-за того, что оболочка (в терминале), в которой вы запускаете поставщик, не является оболочкой входа. Сделайте его оболочкой входа в систему следующим образом:

bash --login
40
задан 3 April 2011 в 17:53

34 ответа

Вы можете использовать locate /rootpath/*filenamespec.I раньше не пробовал, но он работает. Для вашего примера это будет locate / home / tim / science / * math *

Возможно, вы захотите посмотреть на команду find чем найти для такого поведения. Синтаксисом будет find rootforsearch -name filenamepattern -print . В этом случае ваш пример потребует find / home / tim / science -name * math * -print . Не так быстро, как найти, поскольку нет базы данных для поиска ... она фактически ищет файловую систему. Существует множество опций, которые вы можете использовать, кроме печати, если вы собираетесь на самом деле что-то делать с файлом.

7
ответ дан 10 August 2018 в 10:02

Вы можете использовать locate /rootpath/*filenamespec.I раньше не пробовал, но он работает. Для вашего примера это будет locate / home / tim / science / * math *

Возможно, вы захотите посмотреть на команду find чем найти для такого поведения. Синтаксисом будет find rootforsearch -name filenamepattern -print . В этом случае ваш пример потребует find / home / tim / science -name * math * -print . Не так быстро, как найти, поскольку нет базы данных для поиска ... она фактически ищет файловую систему. Существует множество опций, которые вы можете использовать, кроме печати, если вы собираетесь на самом деле что-то делать с файлом.

7
ответ дан 13 August 2018 в 16:21
  • 1
    Это лучший ответ, поскольку он использует локализовать (не требуя никакой другой утилиты, такой как grep ) и делает это без регулярных выражений (которые хороши, но в этом случае не нужны). – Tom 9 April 2015 в 15:37
  • 2
    Это работает как шарм, который вы можете использовать для поиска файлов в определенном каталоге Path, благодаря @Nerdfest – amit_game 15 March 2016 в 09:30

Протяните его через grep, как это

  $ найдите меньше |  grep ^ / bin / bin / bzless / bin / less / bin / lessecho / bin / lessfile / bin / lesskey / bin / lesspipe / bin / zless  

Изменить: другой ответ лучше , Я не знал, что вы можете передать шаблон для поиска.

12
ответ дан 13 August 2018 в 16:21
  • 1
    @Adam .. Не стоит недооценивать свой метод; это вполне нормально, но вы можете использовать собственное регулярное выражение locate, а не piping to grep .. «& quot; метод, на который вы ссылаетесь, не использует регулярное выражение и ведет себя совершенно по-другому .... Я добавил некоторые подробности о различиях в моем ответе ... – Peter.O 4 April 2011 в 01:04
  • 2
    найти меньше | grep ^ / bin быстрее, чем locate -r ^ / bin /.* less, потому что locate less будет выполнять эффективный поиск слова less, а locate -r будет выполнять операцию регулярного выражения для всех записей в locationb – Marcel Valdez Orozco 17 March 2016 в 21:37
  • 3
    @MarcelValdezOrozco Что такое «эффективный поиск слова»? и почему это быстрее, чем регулярное выражение? – Flashrunner 11 February 2018 в 01:13
  • 4
    @Flashrunner Поскольку 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
  • 5
    @MarcelValdezOrozco Но почему поиск без повторного поиска по db равен O (log (n)) , а поиск в регулярном выражении - O (n) ? Количество записей в db одинаково в каждом случае. Я думаю, это алгоритм поиска? – Flashrunner 14 February 2018 в 20:28

Для меня наиболее удобно

cd /home/tim/science
locate math | grep `pwd`
0
ответ дан 9 October 2018 в 11:06

Другие вопросы по тегам:

Похожие вопросы: