Estoy buscando una implementación de un comando 'cacheme', que 'memoizes' la salida de lo que tenga en ARGV. Si nunca lo ejecutó, lo ejecutará y memorizará la salida. Si se ejecutó, simplemente copiará la salida del archivo (o incluso mejor, tanto la salida como el error a & 1 y & 2 respectivamente).¿Puedo almacenar en caché el resultado de un comando en Linux desde CLI?
Supongamos que alguien escribió este comando, funcionaría así.
$ time cacheme sleep 1 # first time it takes one sec
real 0m1.228s
user 0m0.140s
sys 0m0.040s
$ time cacheme sleep 1 # second time it looks for stdout in the cache (dflt expires in 1h)
#DEBUG# Cache version found! (1 minute old)
real 0m0.100s
user 0m0.100s
sys 0m0.040s
Este ejemplo es un poco tonto porque no tiene salida. Idealmente se probaría en un script como sleep-1-and-echo-hello-world.sh.
Creé un pequeño script que crea un archivo en/tmp/con hash del nombre completo del comando y nombre de usuario, pero estoy bastante seguro de que algo ya existe.
¿Conoces algo de esto?
¿Cuál es el caso de uso? Por qué querrías esto ? –
Por ejemplo, una secuencia de comandos que tarda años en ejecutarse, pero normalmente ofrece resultados consistentes, en los casos en los que no está interesado en tener una respuesta nueva, sino simplemente una buena versión no demasiado vieja. – Riccardo
Esto está muy cerca de lo que 'make' hace –