HOME

TheInfoList



OR:

locate is a
Unix Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
utility which serves to find files on filesystems. It searches through a prebuilt
database In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
of files generated by the updatedb command or by a daemon and compressed using incremental encoding. It operates significantly faster than find, but requires regular updating of the database. This sacrifices overall efficiency (because of the regular interrogation of filesystems even when no user needs information) and absolute accuracy (since the database does not update in real time) for significant speed improvements, particularly on very large filesystems.


Implementations of locate

locate was first created in 1982. The BSD and GNU Findutils versions derive from the original implementation. A locate command is also included in
MacOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
. mlocate (Merging Locate) and the earlier slocate (Secure Locate) use a restricted-access database, only showing filenames accessible to the user. GNU findutils' locate database can be built either in the traditional way (as a world-readable database of files accessible by everybody) or in the manner of slocate, in which the database contains more files, but the output is filtered to show the user only the names of files they have access to. plocate uses posting lists. Like mlocate and slocate, it only shows files if find would list it. Compared to mlocate, it is much faster, and its index is smaller.


Performance differences between find and locate

When find searches a large file system, it performs many system calls and reads from many locations on the storage media. This is often quite slow. The locate command, by comparison, generally reads a compressed database and lists the matching files. So locate generally performs much less I/O per match. However, find can operate faster if you only want to search a small directory (not the whole file system).


See also

* mdfind related command in MacOS


References


External links


GNU Findutils

mlocate
* * * Variants:
plocate
- Variant faster than mlocate, with a smaller index.
rlocate
- Variant using kernel module and daemon for continuous updates.
KwickFind
- KDE GUI frontend for locate * Locate32 for Windows - GPL'ed graphical Windows variant GNU Project software Unix file system-related software Information retrieval systems {{Unix-stub