I stumbled upon this behavior of zsh when using FreeBSD:
% dd if=/dev/zero bs=1M count=1 of=~/test2 dd: failed to open '~/test2': No such file or directory
This really confused me because the same thing works just fine in bash.
touch files using tilde in zsh, and then
% touch ~/test2 % ls ~/test2 /home/christoph/test2
At first, I assumed that zsh doesn't realize that there comes a path after
of= so it didn't expand
~. But autocompleting file names works just fine. In fact, if use an existing file name, begin its path with
~, and then hit Tab at some point, the path gets expanded in the command I'm typing in.
Why does zsh pass
zsh behaves the same on Linux. In fact, I executed these commands above and copied their outputs on a Linux machine.