On Thu, Feb 2, 2023 at 9:57 AM Sebastian Gniazdowski
<sgniazdowski@xxxxxxxxx> wrote:
>
> Hi,
> make and git have the -C option which works like:
> (
> builtin cd -q $COPT
> git/make "$@"
> )
>
> I think that it is very useful, because no lengthy subshell is needed. Zsh doesn't have such option, could it be added? It's pitty that -C is already used by NO_CLOBBER, but maybe some other letter is free (I didn't found any)?
You can do this:
zsh-in-dir() ( builtin cd -q -- "$1" && builtin exec zsh "${@:2}" )
This forks and execs once, the same as if there was a native `-C dir` option.
Note that your original code has the same performance thanks to an
optimization in zsh. The second fork is elided.
Roman.