This has not at all to do with bash
, but it depends on the completions programmed in the package bash-completion
.
From some comments in the file /etc/bash_completion.d/mount
:
# mount(8) completion. This will pull a list of possible mounts out of
# /etc/{,v}fstab, unless the word being completed contains a ':', which
# would indicate the specification of an NFS server. In that case, we
# query the server for a list of all available exports and complete on
# that instead.
#
# umount(8) completion. This relies on the mount point being the third
# space-delimited field in the output of mount(8)
#
Also, you find in the main file /etc/bash_completion
the following comment, that explicitly talk about mount
and umount
commands:
# A meta-command completion function for commands like sudo(8), which need to
# first complete on a command, then complete according to that command's own
# completion definition - currently not quite foolproof (e.g. mount and umount
# don't work properly), but still quite useful.
#
Update:
The comment about mount
and umount
commands was removed from bash_completion
in the commit:
_command_offset: Restore compopts used by called command.
This fixes completions that rely on their compopts, most notably
mount(8).
Fixes bash-completion bug #313183.
Released in bash-completion 1.90
You don't mention what distribution you are using (please include that information in your question), but I've seen similar behavior after running updates on my systems.
My best guess is when you ran a system update, or if it ran automatically, the "bash-completion" package was updated which added this behavior. In Red Hat derivatives, you can find package documentation in /usr/share/doc/PACKAGENAME
. In my /usr/share/doc/bash-completion-1.3/CHANGES
, new changes are listed via a change log format.
Instead of modifying /etc/bash_completion
, which could potentially get overwritten at the next package upgrade, you can create ~/.inputrc
to disable tilde expansion. I confirmed bash_completion-1.3.6 will honor this on my Fedora 16 box.
set expand-tilde off
EDIT
Your mileage may vary with ~/.inputrc
. Bash has functions that may override that behavior depending on what you try to complete (e.g. a program vs a file or directory). This discussion on Super User SE addresses a similar question when autocompleting a vim
command. In this case, the original poster solved his issue by adding a custom function to his ~/.bashrc
.
Best Answer
Try doing this :
this will do the trick...