Скрипт Nautilus для сравнения хеш-значений двух файлов

Иногда мне нужно проверить, идентичны ли два файла. Я попытался сделать сценарий bash, чтобы добиться этого, но я не могу обойти его.

Я нашел ниже скрипт в сети, я поместил его в папку скриптов Nautilus, когда я щелкаю правой кнопкой мыши по файлу и вызываю скрипт из контекстного меню правой кнопкой мыши, он печатает контрольную сумму файла. Как я могу улучшить его, чтобы взять второй файл и сказать, идентичны ли они?

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

1 ответ

Решение

Как насчет этого:

#!/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 файлов), так что вы можете визуально определить, являются ли они одинаковыми. Очевидно, вы можете изменить этот скрипт для ваших нужд:

  • Может быть, просто выйти, если было выбрано более 2 файлов
  • Сделайте сравнение md5 в сценарии и просто выведите "идентичные / разные" в зависимости от результата.
Другие вопросы по тегам