В чем основное отличие между командой locate whereis и which.
Основное отличие, которое я наблюдал, состоит в том, что locate находит все связанные имена файлов во всей файловой системе, тогда как команды whereis и which дают только местоположение (системный / локальный адрес файла) установленного приложения. Насколько точны мои наблюдения?
Как эти команды реализованы внутри. Почему locate работает так быстро по сравнению с поиском тире, в то время как locate выполняет поиск определенного имени файла, соответствующего целевой строке во всей иерархии файловой системы?
Просто
$ which samba
, которая выполняет поиск программ, перечисленных вниз через настройки PATH
$ whereis samba
Команда whereis также выполняет поиск программ, отсутствующих в PATH установка
$locate samba
Также находит файлы по имени файла, но не выполняет поиск самой структуры каталогов, а только базу данных, подготовленную updatedb. Из-за этого местоположение быстрее, чем поиск, но менее точный. Примеры: