web-dev-qa-db-ja.com

2つのファイルのハッシュ値を比較するNautilusスクリプト

2つのファイルが同一であるかどうかを確認する必要がある場合があります。それを実現するためにbashスクリプトを作成しようとしましたが、頭を悩ませることはできません。

ネット上で以下のスクリプトを見つけました。ファイルを右クリックし、右クリックのコンテキストメニューからスクリプトを呼び出すと、Nautilusスクリプトフォルダーに配置され、ファイルのチェックサムが出力されます。 2番目のファイルを取得して、それらが同一であるかどうかを判断するように改善するにはどうすればよいですか?

#!/bin/bash
IFS=$'\n'
zenity --info --text "$(md5sum $1 | sed 's/ /\n/')"
1
kenn

これはどう:

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

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

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

https://help.ubuntu.com/community/NautilusScriptsHowto から、Nautilusが選択したファイルのリストをそのNAUTILUS_SCRIPT_SELECTED_FILE_PATHS変数に入れることを学びました。それらは改行で区切られます。そこで、IFS変数を「改行」に設定して、「for」サイクルがデフォルトのように空白で区切られた単語ではなく、行で繰り返されるようにしました。行/ファイルごとに、その上でmd5sumを実行し、結果を変数に追加します。最後に、変数は最初に行ったようにzenityを使用して出力されます。

これにより、選択したファイルのmd5sumが表示されるだけなので(2つ以上のファイルでも機能します)、それらが同じであるかどうかを視覚的に判断できます。明らかに、このスクリプトは必要に応じて変更できます。

  • 3つ以上のファイルが選択された場合は、終了するだけかもしれません
  • スクリプトでmd5比較を実行し、結果に基づいて「同一/異なる」を出力します。
2
roadmr