Разница между 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 переменная окружения.