Je pense que seul rsync est utilisable. Pourquoi ?
diff n'est utile que pour les structures conservant des fichiers et des répertoires. Diff ne donne pas de codes de sortie adéquats lorsque nous utilisons des liens symboliques. Dans cette situation, diff peut retourner 2 codes de sortie, même si src et dst sont identiques (temps, tailles, noms, timestamps, softlinks de pointage etc).
dir, le système de fichiers ne garantit pas l'ordre des fichiers, même si le contenu des répertoires src et dst est identique. Vous devriez peut-être filtrer la sortie de ls en la triant. Mais ls pur n'affiche que les noms des noeuds.
peut-être que script incluant diff, cmp, test -X pour les types de noeuds sera utile, mais il faut se souvenir de la surcharge causée par de nombreuses exécutions de test/cmp. Le script sera très lent.
Comme d'habitude, si vous voulez obtenir l'information simple "les répertoires sont/ne sont pas identiques", vous devez utiliser rsync avec l'option -n (sec). Si vous voulez trouver ce qui est différent, utilisez la commande diff.