I consulted the manpage for `ln` on darwin to ensure that this used valid options only (my initial attempt used a bunch of GNU-specific stuff), so let me know that this is working for you.