locate is a command I’ve used in the past, but now, fresh installed with sudo apt get locate it doesn return anything.
locate --version returns
locate (GNU findutils) 4.10.0, from 2024
or, have I forgotten something?
locateuses an index you need to update usingupdatedbbefore it is able to find anything.updatedbmay run periodically because of a cron job, but the index is probably missing right after installing it manually.Why don’t filesystems maintain such a database so you don’t have to spend cycles on a file indexer ?
I guess because that adds extra complexity that isn’t inherently necessary and can be added on top, plus it eats resources. You’ll spend the cycles either way basically, at least this way it’s optional. I don’t bother with a file indexer because with SSDs nowadays,
findis pretty fast, and how often do you search for files anyway?Linux has APIs to get notified on file system events (fanotify, inotify) which would allow such a service to update itself whenever files are created/delete immediately, but
locateis way older than that, from the 80s. I think popular DEs have something like that.There’s also ways to search for specific files that come with packages (e.g.
dpkg -S), because the package manager already maintains an index of files that were installed by it, so you can use that for most stuff outside/home.I search for files dozens of times per day, it’s largely how I navigate between folders.
And often advanced searches like only this root folder, in reverse order of accessed time, or only folder
On windows I use void tools everything but nothing like it compares in speed and ease of use on linux.
It’s one of my many roadblock to transition to linux.Have you tried RTFM? :P
Jokes aside afaik you could do everything you mentioned with sort, find (with -type f, -printf and -mtime) and grep (filtering via regex with the -e flag).
Alternatively you could try KDE’s file explorer dolphin (or even just its search utility kfind) as a graphical alternative.
My point is switching to linux is not quick or easy, but there are few really impassable roadblocks (games with shitty kernel level anticheat for example) and there is a high likelyhood someone in this community has encountered your problems aswell and migjt even know a solution.
Nemo, Cinnamon’s file manager, also has great built-in search. I almost never feel the need to open up Catfish.
Yeah, i like nemo a lot, i use it on my main machine when i need a gui, because it has not as many dependencies as dolphin. And it does not feel as “bloated” as dolphin. It does one thing (be a file explorer) and does well. :)
using find to sort all pictures in /pics/ by inverted (i.e., most recently accessed first) access time, and filtering only those with an exposure time between 1/20 and 1/100 seconds
find /pics/ -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) \ -exec exiftool -ExposureTime -T {} \; -exec bash -c ' file="$1" exposure="$2" # Convert exposure to decimal if [[ "$exposure" =~ ^([0-9]+)/([0-9]+)$ ]]; then num="${BASH_REMATCH[1]}" denom="${BASH_REMATCH[2]}" exposure_val=$(echo "$num / $denom" | bc -l) else exposure_val="$exposure" fi # Filter by exposure between 1/100 and 1/20 seconds if (( $(echo "$exposure_val >= 0.01" | bc -l) )) && (( $(echo "$exposure_val <= 0.05" | bc -l) )); then atime=$(stat -c %X "$file") # Access time (epoch) echo "$atime $file" fi ' bash {} $(exiftool -s3 -ExposureTime {}) | sort -nrIn voidtools everything it would be
pic: path:"C:\pics" sort:da-descending ExposureTime:1/20..1/100But actually doesn’t work because “ExposureTime” is only available as an sorting order not a filter but you get the gist ;)
Ah yeah okay, I see, that would be quite tedious to implement in bash. Everything looks pretty neat. :D
Buuut I just looked at KDE’s search framework filter options (used by dolphin if you press <crtl> + f ) and it seems it is indeed possible to search/filter by exposure time with dolphin or via directly in the cli.
You might like fd. And bat. And generally awesome shell.
Sounds good, I’m searching for a good shell function and alias repository
Please tell if you find one, i would like to contribute.
I wonder if the helper-scripts would allow something like that or if they’re proxmox scripts only ?
They do. You look at it every time you see the contents of your disk. It’s just organised in a tree to make path based lookups fast and locate organises its database differently to make fast basename lookups.
run these two commands:
sudo apt install mlocate
sudo updatedb
deleted by creator
Several distributions made an effort to replace
locatewith alternative and updated versions of it. For usage the command name is stilllocate, but the package name should be different, in examplemlocateorplocateand there are other alternatives too. The main difference between the old and new versions is they are faster.plocate is backwards-compatible with mlocate, and is much faster and more efficient than mlocate. source
From your personal experience, what do you prefer and why, if you don’t mind :).
Btw, there’s also
IFS=:; find $PATH -executable -iname "$1" -print
Speed advantages of a indexed DB don’t matter much anymore with nowadays hardware.




