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