I am having problems running this command to work in zsh:my_command -u something -s X:^0  The command works right away on tcsh, but on zsh I get:zsh: no matches found -s X:^0This made me wonder if ^ is to blame. As far as I understand sX:^0 is the value of the argument -s, but zsh seems to expand it and not pass it to my_command in the same way tcsh would do. Is my understanding correct? If so how can I run the same command in zsh?
tcsh vs zsh. Escape/control characters
zsh;quoting;special characters
With extendedglob enabled, in zsh, ^ is a the negation globbing operator, so -sX:^0 means any filename starting with -sX: not followed by 0.You need to quote it (as in '-sX:^0' or -sX:\^0 or -sX:^0...) if you don't want it to be interpreted as a globbing operator.Note that in the Bourne shell and its predecessors, ^ was also a pipe operator so needed quoted as well.