Sometimes an idea so simple, so brilliant, so obvious crosses your path and you think, "D'oh! Why didn't I come up with this several decades ago?" And the answer is, of course, because you (like me) are a lunkhead and while we are inspired by that solution, we never really had it in us to think it up ourselves. This morning, I once again experienced that sense of awe and shame, when fellow staffers Ryan and Clint pointed me to lns after I publicly started complaining about how I could never remember which order to use for my ln arguments.

There's nothing technologically challenging about lns . It's a simple utility that I could have easily written myself; but I didn't and I never thought of it and I am so pleased that Sean M. Burke not only thought it up but also shared it with the world.

lns lets you use ln in complete ignorance of the order of arguments. You no longer have to remember, source dest or dest source (or, as the man page reveals ln [-Ffhinsv] source_file [target_file] ). You just use it however you feel best and the utility figures out the rest.

Paste the source code into a new file, make it executable and throw it into your local bin. Then be prepared to let go your decades-old resentment of ln . Because lns just works:

% lns ~/fl foo Made foo -> /Users/ericasadun/fl % lns bar ~/fl Made bar -> /Users/ericasadun/fl % lns glorple fligle But neither glorple nor fligle exist!