From 5e07604f4b6f4abb86375d25cfbb8836e7ce853e Mon Sep 17 00:00:00 2001 From: Malin Freeborn Date: Tue, 14 Jan 2025 05:05:36 +0100 Subject: [PATCH] update mlocate to plocate --- basics/locating.md | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/basics/locating.md b/basics/locating.md index 984faf5..c146a9f 100644 --- a/basics/locating.md +++ b/basics/locating.md @@ -22,20 +22,41 @@ Also `which` shows where a binary file (the program) is, which cmus ``` -# Quick Search for Files +# Search Instantly with `plocate` -You'll need to set up `locate` for this by installing `mlocate`. -`mlocate` needs a list of all files on the machine, so run: +You can search every file on the computer instantly by installing `plocate`. + +Once installed, run `sudo updatedb` to create the database of (nearly) every file on the computer. + +Check how big the database is: ```bash +du -h /var/lib/plocate/plocate.db +``` + +Once you have the database, you can find nearly any file instantly. + +- Search for gifs: `locate .gif` +- Search for gifs in the `/usr/` directory: `locate /usr/ .gif` +- Search for jpg images with 'dog' or 'Dog' in the name: `locate -i dog jpg` +- Search for videos: `plocate --regex '.mp4$|.mkv$|.wmv$|.webm$|.mov$|.avi$'` + +For best results, run `updatedb` regularly, perhaps in [crontab](../system/cron.md). + +## Search More Places + +`plocate` will not search `/tmp/`, because nobody cares about those files, and won't search inside `/mnt/`, because that's where USB sticks get mounted, so the files keep changing as USB sticks come and go. + +Change where `plocate` searches by editing the configuration file at `/etc/updatedb.conf`. + +By default, the `/mnt` directory is 'pruned' from the database. +So if you want to search `/mnt` for videos, remove the word `/mnt` from the configuration file. + + +```bash +cat /etc/updatedb.conf +sudo sed 's#/mnt/##' /etc/updatedb.conf sudo updatedb +plocate --regex '.mp4$|.mkv$|.wmv$|.webm$|.mov$|.avi$' ``` -Then to find a file called 'my-cats.jpg', run: - -```bash -locate cats -``` - -For best results, run `updatedb` regularly, perhaps in crontab. -