This patch for zsh/files: * Updates the documentation to be more cautionary * Adds new binary names for the commands * Implements ln -h/-n to inhibit chasing symlinks On this last point: the BSD systems all have a fairly consistent set of options for dealing with how symlinks are chased, documented in symlink(7), which is why they have "ln -h" where GNU went with "ln -n"; the BSDs nowadays implement -n as a compatibility option. I decided to add both. To rip an example from one I contributed to the OpenBSD man-page for ln(1): ----------------------------8< cut here >8------------------------------ In the next example, the second call to ln removes the original foo and creates a replacement pointing to baz: $ mkdir bar baz $ ln -s bar foo $ ln -shf baz foo Without the -h option, this would instead leave foo pointing to bar and inside foo create a new symlink baz pointing to itself. This results from directory-walking. ----------------------------8< cut here >8------------------------------ Is there any thought to being able to name groups of features, perhaps with a g: prefix, so that it becomes possible to do: zmodload -F zsh/files +g:zf_commands zmodload -F zsh/files -g:bare_commands ? Is this desirable? I'd view the semantics as batch-enable/disable, so that later items on the command-line override, even if more general. Feedback appreciated, -Phil