Скрипт 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 в сценарии и просто выведите "идентичные / разные" в зависимости от результата.