Разница между locate и которая в Linux

В чем разница между locate а также which в линуксе?

Почему когда я использую locate mentor это перечисляет все наставника, но когда я использовал which mentor там написано "нет наставника в..." - что это значит?

3 ответа

В чем разница между locate а также which?

locate использует ранее созданную базу данных, чтобы найти файл.

locate читает одну или несколько баз данных, подготовленных updatedb(8) и записывает имена файлов, соответствующие по крайней мере одному из ШАБЛОНОВ, в стандартный вывод, по одному на строку.

Source locate (1) - справочная страница по Linux

updatedb создает или обновляет базу данных, используемую locate(1). Если база данных уже существует, ее данные используются повторно, чтобы избежать перечитывания каталогов, которые не изменились.

updatedb обычно управляется ежедневно cron(8) обновить базу данных по умолчанию (/var/lib/mlocate/mlocate.db)

Источник updatedb(8) - справочная страница по Linux


which ищет исполняемый файл, ища его в каталогах в PATH переменная среды

which принимает один или несколько аргументов. Для каждого из своих аргументов он печатает в stdout полный путь к исполняемым файлам, которые были бы выполнены при вводе этого аргумента в командной строке. Это делается путем поиска исполняемого файла или скрипта в каталогах, перечисленных в переменной среды. PATH,

используя тот же алгоритм, что и bash(1).

Источник который (1) - справочная страница по Linux


locate mentor списки наставника, но which mentor говорит "нет наставника в..."

Что это значит?

У вас есть несколько файлов с именем mentor который можно найти в locate база данных.

У вас нет исполняемого файла или сценария с именем mentor в вашем PATH,

which это найти команду (which возвращает путь к файлам / ссылкам, которые будут выполнены в текущей среде)

locate это найти файлы по имени (locate читает одну или несколько баз данных, подготовленных updatedb и записывает имена файлов, соответствующие по крайней мере одному из шаблонов, в стандартный вывод, по одному на строку)

locate по умолчанию принимает шаблон glob (также можно использовать шаблон Regex) и выполняет поиск в базе данных /var/lib/mlocate/mlocate.db для любого имени файла, соответствующего шаблону.

which команда для поиска полного пути команды в каталогах, интерпретируемая PATH переменная окружения.

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