Após muito pesquisar no Google, vi que estamos ainda, usuários do Ubuntu, relegados a abrir um terminal toda vez que queremos verificar a Hash MD5 de um arquivo (para comparar se dois são iguais, e também verificar autenticidade de arquivos baixados da internet). No Windows, beleza, tem o freeware Hash Tab que adiciona uma tab nas propriedades de arquivo para esta função. Mas para Ubuntu, em ambiente Gnome, ainda não passa de uma idéia (http://brainstorm.ubuntu.com/idea/2139/). Pois bem, em atenção ao princípio de que em software livre os usuários também devem colaborar se não a coisa não anda, resolvi publicar o script, que coloquei na área de trabalho como lançador (comando = “~/bin/gmd5sum %u” com argumento %u pois assim basta arrastar e soltar um arquivo para verificar sua checksum).
Como sabemos que os discos rígidos são a parte mais lenta de um computador, e para calcular uma hash MD5 de um arquivo com vários gigabytes pode levar muito tempo (pois ele tem que ler todo o arquivo) então coloquei um limite, de 4Gb = 4096 Megabytes, onde passando disso o script se recusa a executar. Isto pode ser configurado, alterando a linha, TOO_HIGH_SIZE=4096, para o valor desejado.
Dito isto, este é o script (basta copiar e colar num arquivo, torná-lo executável e criar um lançador pra ele na área de trabalho conforme explicado acima):
#!/bin/bash #Configurar tamanhos altos e altos de mais (em Mb): alto, mostra mensagem informativa #e alto demais, emite mensagem de erro sem calcular checksum HIGH_SIZE=100 TOO_HIGH_SIZE=4096 FILE="${@}" if [ "x$1" = "x" ]; then xmessage "Erro: nenhum arquivo indicado para calcular md5 sum" exit 1 fi; SIZE=$(ls -l "${FILE}"|awk '{print $5}') SIZE_HUMAN=$((SIZE/1024/1024)) if [ $SIZE_HUMAN -gt $TOO_HIGH_SIZE ]; then xmessage "Erro: '$FILE': tamanho de arquivo muito grande ($SIZE_HUMAN > $TOO_HIGH_SIZE Mb)" exit 1 fi; if [ $SIZE_HUMAN -gt $HIGH_SIZE ]; then xmessage "Calculando checksum de arquivo com $SIZE_HUMAN Mb..." -nearmouse -timeout 5 -buttons Ok:0,Cancelar:1 if [ $? -eq 1 ]; then xmessage -nearmouse -timeout 5 "Operacao cancelada pelo usuario..." exit 1 fi fi MD5="$(md5sum "${FILE}")" xmessage "$MD5 ($SIZE bytes = $SIZE_HUMAN Mb)"