Я потерял пару часов, пытаясь запустить сервер VNC (x0vncserver), и клиент отказался подключиться со странным сообщением, которое
No password configured for VNC Auth
Сервер также печатает эту ошибку
SVncAuth: opening password file '~/.vnc/passwd' failed
Хорошо, я потратил много времени, пока не понял, что тильда не была расширена ни оболочкой, ни x0vncserver. Затем я провел эти тесты
$ echo --PasswordFile=~/.vnc/passwd
--PasswordFile=~/.vnc/passwd
Но
$ echo PasswordFile=~/.vnc/passwd
PasswordFile=/home/tichomir/.vnc/passwd
Это почему? Почему оболочка отказывается расширять тильду, если аргумент начинается с тире? Я думал, что тильда всегда будет расширяться до тех пор, пока она не будет указана, но, видимо, есть еще одно правило, которое вступает в игру?