I wrote a few scripts for Midnight Commander to easily compare multiple copies of a directory via checksums. There are a few variations listed below along with a bash script that does the same thing.
First off is this simple bash script that can be used stand alone but is also required for the MC menu entries.
/usr/local/bin/md5compare#!/usr/local/bin/bash
echo -n "Comparing $1 to $2: "
if [ ! -e "$1" ] || [ ! -e "$2" ]
then
echo File Missing
exit 1;
fi
if [ $(md5 -q "$1") = $(md5 -q "$2") ]
then
echo Files Match
exit 0;
else
echo Files Different
exit 1;
fi
You may need to tweak the bash and script paths for your installation. Also remember to make it executable.
sudo chmod +x /usr/local/bin/md5compare
To execute this command directly just run the following.
md5compare file1 file2
Next up are two comparison scripts that can be added MC's user menu. To do this append them to the mc.menu file in your system /etc or users ~/.mc/menu.
This script will compare the currently highlighted file with one of the same name in the other panel.
+ t n
w Compare files via MD5 checksum
/usr/local/bin/md5compare %f %D/%f
echo Press any key to continue
read key
This script on the other hand will compare all tagged files to any matching files in the other panel.
+ t t
W Compare tagged files via MD5 checksum
for i in %t
do
/usr/local/bin/md5compare "$i" %D/"$i"
done
echo Press any key to continue
read key
Finally here is a menu item to simply dispaly the checksum of the selected file.
+ t n
s Calculate MD5 checksum
echo Calculating checksum of %f
md5 -q %f
echo Press any key to continue
read key