update mlocate to plocate

This commit is contained in:
Malin Freeborn 2025-01-14 05:05:36 +01:00
parent d8af949846
commit 5e07604f4b
Signed by: andonome
GPG Key ID: 52295D2377F4D70F

View File

@ -22,20 +22,41 @@ Also `which` shows where a binary file (the program) is,
which cmus which cmus
``` ```
# Quick Search for Files # Search Instantly with `plocate`
You'll need to set up `locate` for this by installing `mlocate`. You can search every file on the computer instantly by installing `plocate`.
`mlocate` needs a list of all files on the machine, so run:
Once installed, run `sudo updatedb` to create the database of (nearly) every file on the computer.
Check how big the database is:
```bash ```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 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.