#!/bin/sh

find . -type f -size +1M -print0 | xargs -0 ls -li | sed -E 's#^ *([^ ]+) +[^ ]+ +[^ ]+ +[^ ]+ +[^ ]+ +([^ ]+) +[^ ]+ +[^ ]+ +[^ ]+ +(.*)$#\2 \1 \3#' | sort -n > /tmp/temp.$$.lierdoublons

(
tr @ \$ <<TERMINE
<?php
@f = fopen('/tmp/temp.$$.lierdoublons', 'r');
while((@l = fgets(@f, 0x400)))
{
	@l = rtrim(@l, "\n");
	@l = explode(' ', @l, 3);
	// 0: taille; 1: inode; 2: chemin; 3: cksum (à calculer).
	if(isset(@derniere) && @l[0] == @derniere[0] && @l[1] != @derniere[1])
	{
		if(!isset(@derniere[3]))
			@derniere[3] = sha1_file(@derniere[2]);
		@l[3] = sha1_file(@l[2]);
		if(@l[3] == @derniere[3])
		{
			echo @derniere[2].' <-> '.@l[2].': ';
			@oui = 0;
			if(link(@derniere[2], @l[2].'.lien'))
				if(unlink(@l[2]))
					if(rename(@l[2].'.lien', @l[2]))
						@oui = 1;
			echo (@oui ? 'oui' : '###')."\n";
		}
	}
	@derniere = @l;
}
fclose(@f);
?>
TERMINE
) | php
