Може да се вадят MD5 хешове и да се сравняват, това не е проблем, естествено не в рамките на ftp сесията, но да речем в рамките на някакъв cronjob.
Обаче се замислям за нещо. Ако имаш много файлове, то вероятно няма да е невъзможно да се получи някоя колизия на хешове, все пак те са колко, 32-байта големи. Шансът според мен е малък, но не е изключено и следователно има вариант даден файл да не може да стои върху сървъра, въпреки че не е качван преди това. Според мен, вероятността е нищожна, но си остава, плюс което никой не може да ти я сметне, защото никой не знае какво има качено и какво ще се качва. Един начин това да се избегне е големите файлове да се разбиват на части и да се смята по една сума за всяка част. Но това пък е усложнява нещата от друга страна.
П.П. и скриптът също ще е забавен, ако не се оптимизира поне малко да не смята суми на качени вече файлове, на 4 ТБ файлове как ще им смяташ сумите, ще е грозно изпълнение с много iowait и много деградиране на производителността. От друга страна, ако потребител презапише качен отпреди файл, трябва да се сметне сумата наново. Май най-добре е един скрипт дето гледа наскоро модифицираните файлове и им смята сумите, да речем нещо от сорта на:
find /dir -mtime -1 |xargs myscript.sh
И myscript.sh да хваща това от $1, да си смята сумата (с md5sum да речем) и да си прави сравненията и да трие ако се наложи.
Забавна задачка е иначе

'>