Filename completion in Linux with mixed case and ignored case.

This is one of my favourites, alwahs keep it handy. Linux is case sensitive by nature but you will always find filenames jumbled up in the case. So what is the solution:

bind \”set completion-ignore-case on\”

Just execute the above in your bash command and file/dir name will behave like Windows. Remember that this is per session setting and thus the names do not get changed internally, it only changes the way to access it (specifically completion only). So if you want this behaviour in all your sessions put this in the appropriate profile file.

Another place where you can put this is \”.inputrc\”, where it will go like the below:

set completion-ignore-case on

If this one is not working then try putting the below in your profile and reinvoke your bash, it should work.

export INPUTRC=~/.inputrc

And if you have re-defined the HOME variable then you can give the complete path of the inputrc file.

bash completion not working on Fedora

I had bash completion installed and after that I had made huge changes to my bashrc and also installed bashstyle. After this the bash-completion stopped working.

I had to spend a lot of time to figure out that the easiest solution was to source the bash-completion again in the end. 🙂

. /etc/bash_completion

unbound variable – bash completion not working and having issues with other stuff like command not found.

I generally use vi/vim for all my practical purposes of working with text files. And I have all the vi/vim plugins required to work with the files. This causes the following to be in the skeleton for all the bash scripts that I create:

set -o nounset                              # Treat unset variables as an error

With this all the unbound variables as errors and was problem with all the shell scripts that was being sourced in the startup of bash. So all I had to do was remove this from all the startup scripts and then from the skeleton of the bash script in vim :).

The solution is quite easy but finding this was really a tough task.