Eu me deparei com esse comportamento do zsh ao usar o FreeBSD:
% dd if=/dev/zero bs=1M count=1 of=~/test2
dd: failed to open '~/test2': No such file or directory
Isso realmente me confundiu, porque a mesma coisa funciona muito bem no bash.
Eu posso touch
arquivos usando til no zsh, e então ls
eles:
% touch ~/test2
% ls ~/test2
/home/christoph/test2
No começo, presumi que o zsh não percebesse que existe um caminho depois, of=
para que ele não se expandisse ~
. Mas os nomes de arquivos com preenchimento automático funcionam muito bem. De fato, se usar um nome de arquivo existente, iniciar seu caminho com ~
e pressionar Tab em algum momento, o caminho será expandido no comando que estou digitando.
Por que o zsh passa ~/test2
para dd
, não /home/christoph/test2
?
O zsh se comporta da mesma maneira no Linux. Na verdade, eu executei esses comandos acima e copiei suas saídas em uma máquina Linux.
$HOME
vez de~
.