Eu comecei a perceber há algum tempo no Xfce4 que quando eu enviava algum arquivo para o Lixo, o tumbler (o thumbnailer do Xfce4) causava uma carga de E / S muito alta por algum tempo. Ao investigar o problema, descobri que ele estava digitalizando o diretório ~ / .thumbnails, que era muito grande em tamanho.
Então eu decidi escrever um script cron que limparia periodicamente o diretório ~ / .thumbnails, mas há um certo diretório de arquivos de vídeo grandes que o tumbler leva um pouco de tempo, e às vezes até falha, para criar miniaturas.
A ideia é remover todas as miniaturas, exceto aquelas para esses vídeos. Mas, para manter essas miniaturas, preciso descobrir quais são seus nomes. O problema é que as miniaturas são armazenadas nomeadas com um md5sum do URI, além da extensão PNG.
Ao olhar para a fonte tumbler , eu encontrei o nome para a miniatura é gerado na seguinte linha:
md5_hash = g_compute_checksum_for_string (G_CHECKSUM_MD5, uri, -1);
A documentação para g-compute-checksum- for-string diz:
g_compute_checksum_for_string(GChecksumType checksum_type,
const gchar *str,
gssize length);
checksum_type: a GChecksumType
str: the string to compute the checksum of
length: the length of the string, or -1 if the string is null-terminated.
Para resumir, a miniatura de um arquivo chamado /home/teresaejunior/File 01.png
será armazenada no diretório .thumbnails / como a8502be3273541e618b840204479a7f9.png
De acordo com o ThumbnailerSpec , o URI é file://filename
. Eu fiz algumas pesquisas sobre o "caractere nulo", e pensei que a8502be3273541e618b840204479a7f9
faria o truque. Para alcançar o resultado f507285c45d293fa66bc0b813d17b6e6
, acreditei que o seguinte deveria funcionar:
printf "file:///home/teresaejunior/File 01.pngmd5_hash = g_compute_checksum_for_string (G_CHECKSUM_MD5, uri, -1);
" | md5sum
mas que retorna printf
.
Alguém pode me dar algum conselho? Eu acredito que minha linha g_compute_checksum_for_string
é falha. Qual é o meu comando diferente de %code% ?