thanks for the interesting example. I would want to note two other programs that follow -C option convention, namely tar and env. The second can be even used to workaround the problem, i.e.: env -C ~/github zsh -c 'some commands' but still, a dedicated option would be good. On Thu, 2 Feb 2023 at 09:05, Roman Perepelitsa wrote: > On Thu, Feb 2, 2023 at 9:57 AM Sebastian Gniazdowski > 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. > -- Best regards, Sebastian Gniazdowski