FreeBSDを使用しているときに、zshのこの動作に遭遇しました。
% dd if=/dev/zero bs=1M count=1 of=~/test2
dd: failed to open '~/test2': No such file or directory
同じことがbashでもうまく機能するので、これは本当に私を混乱させました。
私はtouchzshでチルダを使用してファイルを作成できますls。
% touch ~/test2
% ls ~/test2
/home/christoph/test2
最初は、zshはその後にパスがあることを認識していないため、of=展開しませんでした~。ただし、ファイル名のオートコンプリートは問題なく機能します。実際、既存のファイル名を使用し、そのパスをで開始し~、ある時点でTabを押すと、入力しているコマンドでパスが展開されます。
なぜ合格のzshん~/test2にdd、ではありませんか/home/christoph/test2?
Linuxでもzshは同じように動作します。実際、私は上記のコマンドを実行し、その出力をLinuxマシンにコピーしました。
$HOME代わりに使用できます~。