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

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

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

#!/bin/bash
IFS=\n'
zenity --info --text "$(md5sum $1 | sed 's/ /\n/')"
1
задан 24 March 2019 в 11:48

1 ответ

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

#!/bin/bash
IFS= 

я учился от https://help.ubuntu.com/community/NautilusScriptsHowto, что Nautilus помещает список выбранных файлов в этом переменная NAUTILUS_SCRIPT_SELECTED_FILE_PATHS. Они разделяются новыми строками. Таким образом, я установил переменную IFS на "новую строку", таким образом, "для" цикла выполняет итерации на строках, не разграниченных пробелом словах, как значение по умолчанию. Для каждой строки/файла я выполняю md5sum на нем и добавляю результат к переменной. Наконец переменная производится с помощью zenity, как Вы первоначально сделали.

Это просто покажет md5sum для любых выбранных файлов (он работает больше чем на 2 файла также), таким образом, можно визуально определить, являются ли они тем же. Можно, очевидно, изменить этот сценарий к потребностям:

  • , Возможно, просто выход, если больше чем 2 файла были выбраны
  • , Делает md5 сравнение в сценарии и просто производит "идентичный / отличающийся" на основе результата.
\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 на "новую строку", таким образом, "для" цикла выполняет итерации на строках, не разграниченных пробелом словах, как значение по умолчанию. Для каждой строки/файла я выполняю md5sum на нем и добавляю результат к переменной. Наконец переменная производится с помощью zenity, как Вы первоначально сделали.

Это просто покажет md5sum для любых выбранных файлов (он работает больше чем на 2 файла также), таким образом, можно визуально определить, являются ли они тем же. Можно, очевидно, изменить этот сценарий к потребностям:

  • , Возможно, просто выход, если больше чем 2 файла были выбраны
  • , Делает md5 сравнение в сценарии и просто производит "идентичный / отличающийся" на основе результата.
0
ответ дан 24 March 2019 в 11:48

Другие вопросы по тегам:

Похожие вопросы: