Se vuoi controllarare che i file siano identici proprio del tutto controllare il tipo di file o le date di modifica serve a tanto come niente. Invece per controllare se due file hanno lo stesso contenuto la cosa migliore che puoi fare è del tipo
codice:
if [ `sum file1 | cut -d " " -f 1-2` = \
`sum file2 | cut -d " " -f 1-2` ]; then
echo "uguali"
else
echo "diversi"
fi
In alternativa a sum puoi usare anche md5sum o sha1sum, cambiando però il comando
codice:
cut -d " " -f 1-2
in
Questo ovviamente dovresti farlo per ogni file che trovi spulciando ricorsivamente nella directory, e a mio
modo di vedere rischia di diventare un delirio, anche perchè in bash la ricorsione è una faccenda dannatamente (ma intendo davvero parecchio) lenta.
Una soluzione decisamente più semplice, ma che non posso giurare che funzioni, potrebbe essere di prendere
le directory che devi confrontare, farne degli archivi tar e poi confrontare i due archivi
codice:
tar -cf dir1.tar dir1
tar -cf dir2.tar dir2
if [ `sum dir1.tar | cut -d " " -f 1-2` = \
`sum dir2.tar | cut -d " " -f 1-2` ]; then
echo "uguali"
else
echo "diverse"
fi
rm -f dir1.tar dir2.tar
Ovviamente ha il difetto di dover creare i due archivi che occupano tanto spazio quanto ne occupano le directory.