Ich bin bei der Verwendung von FreeBSD auf dieses Verhalten von zsh gestoßen:
% dd if=/dev/zero bs=1M count=1 of=~/test2
dd: failed to open '~/test2': No such file or directory
Das hat mich wirklich verwirrt, weil das gleiche in Bash gut funktioniert.
Ich kann touch
Dateien mit Tilde in zsh und dann ls
sie:
% touch ~/test2
% ls ~/test2
/home/christoph/test2
Zuerst nahm ich an, dass zsh nicht merkt, dass es einen Pfad danach gibt, of=
also hat er sich nicht erweitert ~
. Das automatische Vervollständigen von Dateinamen funktioniert jedoch einwandfrei. Wenn Sie einen vorhandenen Dateinamen verwenden, den Pfad mit beginnen ~
und dann irgendwann die Tabulatortaste drücken, wird der Pfad in dem Befehl, den ich eingebe, erweitert.
Warum passieren wird zsh ~/test2
zu dd
, nicht /home/christoph/test2
?
zsh verhält sich unter Linux genauso. Tatsächlich habe ich diese Befehle oben ausgeführt und ihre Ausgaben auf einen Linux-Computer kopiert.
$HOME
anstelle von verwenden~
.