Script Nautilus para comparar valores hash de dois arquivos

1

Às vezes preciso verificar se dois arquivos são idênticos. Eu tentei fazer um script bash para conseguir isso, mas eu não posso fazer minha cabeça em torno dele.

Encontrei abaixo o script na net, coloquei-o na pasta de scripts do Nautilus quando clico com o botão direito do mouse em um arquivo e chamo o script do menu de contexto do botão direito para imprimir a soma de verificação do arquivo. Como posso melhorar isso para pegar o segundo arquivo e dizer se eles são idênticos?

#!/bin/bash
IFS=$'\n'
zenity --info --text "$(md5sum  | sed 's/ /\n/')"
    
por kenn 10.06.2015 / 17:29

1 resposta

2

Que tal isso:

#!/bin/bash
IFS=$'\n'

for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
    result="${result}"$(md5sum "${file}")"\n"
done

zenity --info --text="${result}"

Eu aprendi com link que o Nautilus coloca a lista de arquivos selecionados naquela variável NAUTILUS_SCRIPT_SELECTED_FILE_PATHS. Eles estão separados por novas linhas. Portanto, defino a variável IFS como "newline", de modo que um ciclo "for" seja repetido em linhas, e não em palavras delimitadas por espaços em branco, como é o padrão. Para cada linha / arquivo, executo o md5sum nele e acrescento o resultado a uma variável. Finalmente, a variável é enviada usando zenity como você fez originalmente.

Isto irá simplesmente mostrar o md5sum para quaisquer arquivos selecionados (ele também funciona para mais de 2 arquivos), assim você pode determinar visualmente se eles são os mesmos. Obviamente, você pode modificar esse script de acordo com suas necessidades:

  • Talvez seja só sair se mais de dois arquivos forem selecionados
  • Faça a comparação do md5 no script e apenas imprima "idêntico / diferente" com base no resultado.
por roadmr 10.06.2015 / 18:59