Скорее всего, вы сейчас используете /etc/bash_completion
- проверьте, загружен ли он вашим профилем или bashrc.
Он содержит функцию _expand
которая заменяет тильду на путь «чтобы избежать проблем, когда $ cur, начинающийся с тильды, передается командам и заканчивается кавычками вместо расширенных» (из комментариев в функции).
Если вы все еще хотите сохранить тильду, вы можете взглянуть на функцию _filedir
. Рядом с вершиной есть линия
_expand || return 0
Удалите его или отключите с префиксом #
. Однако это уродливый хак, и вы можете столкнуться с проблемами, упомянутыми выше.