glocate -- ZFS-diff-friendly locate-like utility This utility is intended to keep the database of filesystem hierarchy and quickly display some part of it. Like ordinary *locate utilities. But unlike others, it is able to eat zfs-diff's output and apply the changes to existing database. Why I wrote it? I have got ~18M files ZFS data storage, where even "find /storage" takes considerable amount of time, up to an hour. So I have to use separate indexed database and search against it. locate family of utilities does exactly that. But none of them are able to detect a few seldom made changes to the dataset, without traversing through the whole dataset anyway, taking much IO. Fortunately ZFS design with Merkle trees is able to show us the difference quickly and without notable IO. "zfs diff" command's output is very machine friendly. So locate-like utility has to be able to update its database with zfs-diff's output. Why this utility is so relatively complicated? Initially it kept all database in memory, but that took 2-3 GiBs of memory, that is huge amount. Moreover it fully loads it to perform any basic searches. So current implementation uses temporary files and heavy use of data streaming. Database in my case takes less than 128MiB of data. And searching takes only several seconds on my machine. It is free software: see the file COPYING for copying conditions.