Me topé con este comportamiento de zsh cuando uso FreeBSD:
% dd if=/dev/zero bs=1M count=1 of=~/test2
dd: failed to open '~/test2': No such file or directory
Esto realmente me confundió porque lo mismo funciona bien en bash.
Puedo touch
archivos usando tilde en zsh, y luego ls
ellos:
% touch ~/test2
% ls ~/test2
/home/christoph/test2
Al principio, asumí que zsh no se da cuenta de que viene un camino después, of=
por lo que no se expandió ~
. Pero los nombres de archivos de autocompletado funcionan bien. De hecho, si usa un nombre de archivo existente, comience su ruta con ~
, y luego presione Tab en algún momento, la ruta se expande en el comando que estoy escribiendo.
¿Por qué zsh pasa ~/test2
a dd
, no /home/christoph/test2
?
zsh se comporta igual en Linux. De hecho, ejecuté estos comandos anteriores y copié sus resultados en una máquina Linux.
$HOME
lugar de~
.