Я наткнулся на это поведение Zsh при использовании FreeBSD:
% dd if=/dev/zero bs=1M count=1 of=~/test2
dd: failed to open '~/test2': No such file or directory
Это действительно смутило меня, потому что то же самое прекрасно работает в bash.
Я могу touch
файлы, используя тильду в Zsh, а затем ls
их:
% touch ~/test2
% ls ~/test2
/home/christoph/test2
Сначала я предположил, что zsh не понимает, что после этого идет путь, of=
поэтому он не расширяется ~
. Но автозаполнение имен файлов работает просто отлично. Фактически, если вы используете существующее имя файла, начинаете его путь с ~
, а затем нажимаете Tab в какой-то момент, путь расширяется в набираемой мной команде.
Почему zsh переходит ~/test2
на dd
нет /home/christoph/test2
?
Zsh ведет себя так же в Linux. Фактически, я выполнил эти команды выше и скопировал их результаты на машине Linux.
$HOME
вместо~
.