Ma vision, pour exécuter cette commande :
Vous ouvrez le fichier "file" en écriture, vous sauvegardez la sortie standard, vous fermez la sortie standard et la branchez sur le fd de file avec dup.
Vous exécutez le "cat Makefile" comme si il n'y avait pas de redirection,
Vous fermez la sortie standard redirigée sur "file", puis restaurez la "vraie" sortie standard que vous aviez sauvegardée au tout début.
Et, logiquement, cela fait ce que vous attendez.
Ou alors, j'ai tout oublié de ce que j'avais appris sur ces manipulations (cela fait plus de 20 ans que je ne les pratique plus trop )
Bonne continuation !