Найти имя не работает

Есть файл в /user/share/jogl.jar.

Я использую locate jogl.jar

, но это не работает. Почему?

2
задан 17 July 2013 в 18:01

3 ответа

Со страницы руководства:

   locate  reads  one or more databases prepared by updatedb(8) and writes
   file names matching at least one of the PATTERNs  to  standard  output,
   one per line.

Запустите updatedb от имени пользователя root и повторите попытку. Это должно работать.

В качестве альтернативы вы можете использовать find или find | grep, которые не используют дБ (и, следовательно, значительно медленнее).

0
ответ дан 17 July 2013 в 18:01

Что вы подразумеваете под «это не работает»? Если вы не знакомы с locate, на ум приходят две основные проблемы: обе связаны с тем, что locate опирается на базу данных, а не напрямую с файловой системой.

  1. Результат не отображается : в этом случае вам может потребоваться обновить базу данных locate, просто запустив updatedb из терминала

    [ 1110]
  2. Возвращает слишком много результатов : еще раз, locate использует базу данных, а не текущий каталог (в отличие от нескольких других общих команд Unix), поэтому, если вы попытаетесь найдите somestuff из вашего каталога home, чтобы найти все somestuff, которые он может содержать, он не будет работать. Вам придется запустить его с полным путем: locate ~/*somestuff

0
ответ дан 17 July 2013 в 18:01

По некоторым причинам Ubuntu не добавила меня, как пользователь, группе, этому позволяют прочитать базу данных по умолчанию. Решение было:

sudo usermod -a -G mlocate YOUR_USER_NAME

Эта информация была изучена, читая man updatedb и исследуя разрешения дефолта db в /var/lib/mlocate/mlocate.db.

0
ответ дан 2 December 2019 в 02:03

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

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