java
has a separate auto-completion script that overrides the default completion mechanism. On my distribution (Arch Linux), it is installed in /usr/share/bash-completion/completions/java
.
To override the behaviour of tab-completion, you could create such a script. If you just want to have all .class
files ignored for every command, you could set the FIGNORE
variable (e.g. in your ~/.bashrc
). Example: FIGNORE=.class
. From the manual page of bash
:
FIGNORE
A colon-separated list of suffixes to ignore when performing filename completion (see READLINE below). A filename whose suffix matches one of the entries in FIGNORE is excluded from the list of matched filenames. A sample value is ".o:~".