Для получения более подробных ответов по глубине и полноте см. Этот ответ в Unix & Linux .
Этот бразильский парень
Ответы:
38
findпоиски в реальной системе. Это медленнее, но всегда актуально и имеет больше возможностей (размер, время модификации, ...)
locateиспользует ранее созданную базу данных (команду updatedb). Это намного быстрее, но использует «более старую» базу данных и ищет только имена или их части.
В любом случае man findи man locateпоможет вам дальше.
Оба locateи findкоманды будут найти файл, но они работают совершенно по- разному.
locate будет работать в автономном режиме:
Для простого объяснения база данных индексации файлов в системе Unix, называемая slocate , перечислит расположение всех файлов, которые поставляются с системой Unix. Когда вы запустите locate, он будет использовать эту базу данных для поиска определенного файла. Проблема locateв том, что если вы только что создали файл, который вы сейчас хотите найти, команда locate работать не будет, поскольку база данных slocate не обновлена. Чтобы преодолеть эту проблему, вы можете использовать updatedbдля обновления базы данных slocate . Выполнение locateснова теперь найдет вновь созданный файл. Таким образом, многие системные администраторы Linux используют cronзадание для регулярного обновления базы данных slocate .
find будет работать в режиме онлайн / в режиме реального времени.
На самом деле он пойдет и будет искать во всех каталогах, чтобы найти конкретный указанный файл, и будет проверять каждый файл один за другим. Следовательно, требуется много вызовов ввода / вывода.
Итак, исходя из природы, ясно, что найти быстрее, чем найти, но найти в режиме реального времени.
Надеюсь, это поможет прояснить идею. Всего наилучшего. :)
Альтернативой использованию find является команда locate. Эта команда часто выполняется быстрее и может легко выполнять поиск по всей файловой системе. Вы можете установить команду с помощью apt-get:
sudo apt-get update
sudo apt-get install mlocate
Причина, по которой поиск выполняется быстрее, чем поиск, заключается в том, что он опирается на базу данных файлов в файловой системе. База данных обычно обновляется один раз в день с помощью скрипта cron, но вы можете обновить ее вручную, набрав:
sudo updatedb
Запустите эту команду сейчас. Помните, база данных всегда должна быть актуальной, если вы хотите найти недавно приобретенные или созданные файлы.
Ответы:
find
поиски в реальной системе. Это медленнее, но всегда актуально и имеет больше возможностей (размер, время модификации, ...)locate
использует ранее созданную базу данных (командуupdatedb
). Это намного быстрее, но использует «более старую» базу данных и ищет только имена или их части.В любом случае
man find
иman locate
поможет вам дальше.источник
updatedb
делать что-то вродеfind / -type f | gzip > locate.gz
.Оба
locate
иfind
команды будут найти файл, но они работают совершенно по- разному.locate
будет работать в автономном режиме:locate
, он будет использовать эту базу данных для поиска определенного файла. Проблемаlocate
в том, что если вы только что создали файл, который вы сейчас хотите найти, команда locate работать не будет, поскольку база данных slocate не обновлена. Чтобы преодолеть эту проблему, вы можете использоватьupdatedb
для обновления базы данных slocate . Выполнениеlocate
снова теперь найдет вновь созданный файл. Таким образом, многие системные администраторы Linux используютcron
задание для регулярного обновления базы данных slocate .find
будет работать в режиме онлайн / в режиме реального времени.Итак, исходя из природы, ясно, что найти быстрее, чем найти, но найти в режиме реального времени.
Надеюсь, это поможет прояснить идею. Всего наилучшего. :)
источник
locate
просто просматривает свою базу данных и сообщает о местонахождении файла.find
не использует базу данных, он просматривает все каталоги и их подкаталоги и ищет файлы, соответствующие заданному критерию.источник
Альтернативой использованию find является команда locate. Эта команда часто выполняется быстрее и может легко выполнять поиск по всей файловой системе. Вы можете установить команду с помощью apt-get:
Причина, по которой поиск выполняется быстрее, чем поиск, заключается в том, что он опирается на базу данных файлов в файловой системе. База данных обычно обновляется один раз в день с помощью скрипта cron, но вы можете обновить ее вручную, набрав:
Запустите эту команду сейчас. Помните, база данных всегда должна быть актуальной, если вы хотите найти недавно приобретенные или созданные файлы.
источник