Sometimes I’m using that in makefiles because some (texture) tools regenerate same output when inputs have been modified, so it prevents following rules of being remade

$function cpifdiff() { diff$1 $2 | cp$1 $2 }$ cpifdiff source dest