В чем разница между locate
и which
?
locate
использует ранее созданную базу данных, чтобы найти файл.
locate
читает одну или несколько баз данных, подготовленных с помощьюupdatedb
(8), и записывает имена файлов, соответствующие по крайней мере одному из PATTERN, в стандартный вывод, по одному на строку.
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
.