Hacker News new | ask | show | jobs
by reactjavascript 1493 days ago
I just want my entire file system stored in Sqlite so I can query it myself
4 comments

Oh hey look what I just found https://github.com/narumatt/sqlitefs
>> "mount a sqlite database file as a normal filesystem"

I'm looking to do the opposite. Given a location, recurse it, stat() each file and create the database.

If you happen to be using macOS, there's mdfind, which uses the spotlight database which is always kept up to date, unlike locate/updatedb, where updatedb is expensive to run, even if you've run it recently.

I have yet to find a good solution for linux CLI... something that uses an internal database that is kept up to date with all directory structure changes.

Maybe someone else has seen something cool for this? :D

It's still not clear to me whether you want the files inside the database or just the metadata. The stat part suggests the latter?

I guess I can see that, but now you have cache invalidation (someone else linked to Spotlight, which does this as a background process). SQLite files can be larger than any physical medium you can purchase so why not go the distance?

You could also make it as a Sqlite virtual table so it's dynamic.

Also file data is available in osquery: https://osquery.io/schema/5.2.3/#file

updatedb/locate?
updatedb is expensive to run and is usually run by a cron job, whereas something like mdfind on macos uses spotlight, which is kept up to date with all filesystem changes (or at least reasonably fast).

Anybody know of something like that for linux?

I'm shocked so many people forget this
Sounds like macOS would be right up your alley then.
I have MacOS, where is the sqlite file?
/private/var/db/Spotlight-V100/...
Is the parent post referring to `mdfind` perhaps?
Believe so.