Hace unos días atrás, Claudio escribió acerca del tiempo que Eog toma en guardar el nombre de archivo de una imagen utilizada recientemente en el archivo ~/.recently-used.xbel. La razón: el archivo ~/.recently-used.xbel era demasiado grande. Si recuerdo bien, FileChooser solía tener el mismo problema.
Pasar de 5.8 MiB a 1.8 MiB, vía la eliminación de todos aquellos archivos que ya no existen en el sistema, pareceria una buena ganancia. Pero quise ir un poco más allá y me pregunté ¿Cuántos archivos recientes realmente necesita manejar una aplicación? (bueno, no fuí mucho más allá :-) No creo que más de 10, pero que alguien me corrija si me equivoco.
Así que escribí mi propia versión del programa de Claudio considerando este antecedente. Y mi archivo ~/.recently-used.xbel pasó de 1.2 MiB a 54 KiB. Antes de ir al script, muestro los números que obtuve en un computador con menos de dos meses de uso no intensivo:
gpoo@pendragon:~$ python clean-recently-used.py -v
Summary:
1 Reproductor de películas Totem
1 Glade
4 GNU Image Manipulation Program
4 Navegador web
9 Visor de documentos Evince
9 File Roller
14 Web Browser
15 Gnumeric Spreadsheet
26 gedit
34 Administrador de archivos
36 Evince Document Viewer
52 Totem Movie Player
292 File Manager
1151 Eye of GNOME Image Viewer
Si cargo Eog, éste sólo me muestra los últimos 5 archivos abiertos. ¿Por qué necesita almacenar 1146 archivos adicionales?
No importa. El script que escribí es simple. Borra los archivos que no existen (usando la misma estrategia que el programa de Claudio), pero también borra los archivos que no han sido utilizados tan recientemente. Y obtuve los siguientes números:
gpoo@pendragon:~$ python clean-recently-used.py -v
Summary:
1 Glade
3 GNU Image Manipulation Program
4 Navegador web
8 File Roller
9 Visor de documentos Evince
10 Totem Movie Player
10 Eye of GNOME Image Viewer
10 Web Browser
10 Gnumeric Spreadsheet
12 Evince Document Viewer
13 Administrador de archivos
14 gedit
41 File Manager
Es posible colocar el script para ser ejecutado al inicio de la sesión o programarlo como una tarea en cron.
También se puede jugar con el script utilizando la opción -v, la cual sólo entregará un resumen del uso del gestor de archivos recientes.
Por cierto, es lento al borrar archivos (medido en segundos), pero es mucho mejor cuando ésto está bajo control.