Não seria mais fácil modificar sua solução com script de acordo com suas necessidades? Por exemplo, você pode armazenar seus índices de backup em um diretório (por exemplo, /var/local/backupindex
) e fazer com que o script do wrapper em torno de localize faça algo assim:
#!/bin/bash
db_dir=/var/local/backupindex
case "$1" in
find)
for db in "$db_dir"; do
db_name="$(basename "$db")"
last_changed="$(stat -f "%m" "$db")"
for pattern in "$@"; do
locate -d "$db" "$pattern" | sed "s/.*/$db_name ($last_changed): &/"
done
done
;;
update)
# add code to derive $db_name from external drive identifier, e.g.:
#sn=$(system_profiler SPUSBDataType | awk '/Serial/ {print $3}')
#[[ $sn =~ 123456 ]] && db_name=sn_123456.db
updatedb --localpaths='/mount/point' --output=$db_name
;;
*)
echo "Unknown subcommand: $1" 1>&2
exit 1
;;
esac
exit 0
Isso irá preceder cada correspondência localizar retornos com o nome do arquivo de banco de dados e a data em que o arquivo foi modificado pela última vez. Ao tornar o primeiro argumento um subcomando, você pode implementar consulta, atualização, limpeza, ... no mesmo script.