Как использовать locate в cygwin?

14

Я пытаюсь использовать, locateчтобы найти файлы, но я ничего не получаю от программы. Он даже не может найти файлы, которые находятся в текущем каталоге. Как мне заставить locateработать?

Phenom
источник
использовать sudo updatedb?
ukanth

Ответы:

15

По сути, вы должны сначала запустить updatedb, так как это создает базу данных, которую использует локация.
Просто сделайте updatedb --localpaths = c: / в качестве первого решения.

См. Этот пост в блоге для получения полезных советов, в том числе о том, как настроить updatedb через Cygwin Cron: https://web.archive.org/web/20061114000822/www.weiqigao.com/blog/2006/08/14/ten_steps_to_higher_cygwin_productivity .html (обновленная ссылка на archive.org)

Google 'cygwin updatedb' для соответствующего сообщения, если у вас есть проблемы с путями, которые включают пробелы. У меня нет никаких проблем (кроме отказа в разрешении) на WinXP Pro, но другие платформы могут требовать этого.

dirkjot
источник
5
У блога появился новый адрес: webpages.charter.net/weiqigao/2006/08/14/…
Стефан Расмуссон
Я обнаружил, что простой вызов updatedb не будет работать в Cygwin, так как параметры по умолчанию (или --localpaths = c: /) приведут его к следующим ссылкам в бесконечные циклы. Я думаю, это связано с тем, что некоторые типы ссылок на Windows 7 не отображаются в виде символических ссылок на Cygwin, поэтому он не может их пропустить (так как поведение по умолчанию - нелогично, как предполагается)
Phil Goetz
Пост блога недоступен. Было бы лучше изложить свой совет здесь.
reinierpost
1
Спасибо @reinierpost, исправил ссылку. Пост слишком длинный, чтобы его встроить, ИМХО.
Диркджот
5

Для использования locateвам нужно запустить в updatedbпервую очередь.

Марк Байерс
источник
-1

Я думаю, что команда, которую вы хотите, это find

Сделать, man findчтобы увидеть синтаксис и параметры

Команда locate запускается для предварительно созданной базы данных имен файлов

Экс Умбрис
источник
Да, программа locate работает с предварительно созданной базой данных. Почему это означает, что ОП хочет найти вместо этого?
CarlF
1
Find, по крайней мере, выполнит запрошенную работу, если locate отсутствует или по какой-либо причине не работает. Медленнее, поскольку у него не будет предварительно подготовленных данных для поиска, но он будет работать, и результаты, скорее всего, будут должным образом обновлены и завершены (updatedb, возможно, был настроен для исключения некоторых частей файловой системы).
Дэвид Спиллетт